Skip to content

Releases: Mike4947/Notepad

PyNotepad

02 Aug 02:24
26bad38

Choose a tag to compare

Brand new Feature

  • 1. Syntax highlighting for different programming languages
  • 2. Customizable theme
  • 3. Auto indent
  • 4. Add Cut, Copy, Paste functionality
  • 5. AND MORE!

Link to the latest releases HERE

Features Code:::

  • Syntax highlighting

def add_syntax_highlighting(self):
        # Add syntax highlighting for different programming languages
        self.text_area.tag_configure("python", foreground="blue")
        self.text_area.tag_configure("java", foreground="green")


    def highlight_syntax(self):
        text = self.text_area.get(1.0, tkinter.END)
        lines = text.split("\n")

        for index, line in enumerate(lines, start=1):
            if "def" in line:
                self.text_area.tag_add("python", f"{index}.0", f"{index}.end")

            if "class" in line:
                self.text_area.tag_add("python", f"{index}.0", f"{index}.end")

            if "public" in line:
                self.text_area.tag_add("java", f"{index}.0", f"{index}.end")

            if "#" in line:
                self.text_area.tag_add("python", f"{index}.0", f"{index}.end")

            if "console.log" in line:
                self.text_area.tag_add("js", f"{index}.0", f"{index}.end")

            if "func" in line:
                self.text_area.tag_add("swift", f"{index}.0", f"{index}.end")

            if "println" in line:
                self.text_area.tag_add("swift", f"{index}.0", f"{index}.end")

            if "int main" in line:
                self.text_area.tag_add("c", f"{index}.0", f"{index}.end")

            # Add more syntax highlighting rules for other languages as needed

        self.text_area.tag_config("python", foreground="blue")
        self.text_area.tag_config("java", foreground="green")
        self.text_area.tag_config("js", foreground="yellow")
        self.text_area.tag_config("swift", foreground="purple")
        self.text_area.tag_config("c", foreground="orange")

        self.text_area.tag_config("python", foreground="blue")
        self.text_area.tag_config("java", foreground="green")
  • Custom Themes

Pictures

image
image
image

    def customize_theme(self):
        self.theme_options = ["Light Theme", "Dark Theme", "Custom Theme"]
        self.theme_choice = tkinter.StringVar()
        self.theme_choice.set("Light Theme")  # Default theme setting

        theme_menu = tkinter.OptionMenu(self.master, self.theme_choice, *self.theme_options, command=self.apply_theme)
        theme_menu.pack()

    def apply_theme(self, event=None):
        selected_theme = self.theme_choice.get()

        if selected_theme == "Light Theme":
            self.text_area.config(bg="white", fg="black")
        elif selected_theme == "Dark Theme":
            self.text_area.config(bg="black", fg="white")
        elif selected_theme == "Custom Theme":
            # Implement custom theme settings here
            self.text_area.config(bg="lightblue", fg="darkblue")
  • Auto indent

    def auto_indent(self):
        auto_indent_btn = tkinter.Button(self.master, text="Auto Indent On", command=self.toggle_auto_indent)
        auto_indent_btn.pack(side=tkinter.BOTTOM)

        self.auto_indent_enabled = False

    def toggle_auto_indent(self):
        if self.auto_indent_enabled:
            self.auto_indent_enabled = False
            messagebox.showinfo("Auto Indentation", "Auto Indentation turned off")
        else:
            self.auto_indent_enabled = True
            messagebox.showinfo("Auto Indentation", "Auto Indentation turned on")

            self.text_area.bind("<Return>", self.auto_indent_on_return)

    def auto_indent_on_return(self, event):
        if self.auto_indent_enabled:
            current_line = self.text_area.get(f"{event.widget.index(tkinter.INSERT).split('.')[0]}.0",
                                              event.widget.index(tkinter.INSERT))
            whitespace = len(current_line) - len(current_line.lstrip())
            self.text_area.insert(tkinter.INSERT, "\n" + " " * whitespace)
  • Cut, copy, paste functions

    def clipboard_functionality(self):
        # Add Cut, Copy, Paste functionality
        self.menu_bar.add_command(label="Cut", command=self.cut_text)
        self.menu_bar.add_command(label="Copy", command=self.copy_text)
        self.menu_bar.add_command(label="Paste", command=self.paste_text)

    def cut_text(self):
        self.text_area.event_generate("<<Cut>>")

    def copy_text(self):
        self.text_area.event_generate("<<Copy>>")

    def paste_text(self):
        self.text_area.event_generate("<<Paste>>")

PyNotepad

02 Aug 00:57
26bad38

Choose a tag to compare

#Release

  • Now with checking update feature 🚀
    Code:
    def open_github(self):
        github_page = "https://github.com/Mike4947"
        webbrowser.open_new(github_page)

    def download_latest_version(self):
        webbrowser.open("https://github.com/Mike4947/Notepad/releases/latest")

Check out new release at Releases Page

#Pictures

image

PyNotepad

02 Aug 00:09
5b20c55

Choose a tag to compare

PyNotepad Pre-release
Pre-release

Beta version of my own notepad app!

  • 💻 .EXE avalable 💻 *(with Pyinstaller) from PyInstaller.__main__ import run

  • 🎉 Set ttk theme to Azure (Pretty modern) self.master.configure(bg="Azure")

  • 🆘 Adding a help tab section with an about button. When clicked it redirect you to my Github ->Link<-

Pictures:

image

image

image