tkeditor
tkeditor is a modern, extensible Tkinter-based code editor framework written in pure Python.
It is designed for building IDE-like applications with syntax highlighting, folding, line numbers, and deep customization.
Unlike basic Tkinter text widgets, tkeditor focuses on performance, flexibility, and developer control.
Features
- Custom lexer system (BaseLexer API)
- Language-agnostic syntax highlighting
- Fully customizable token styles
- Canvas-based line numbers
- Current line highlighting
- Code folding with symbols
- Bracket tracking
- Indentation guides
- Custom scrollbars
- Exposed Frame, Text, and Canvas configuration
- Full .pyi type-hint support for IDE autocomplete
Installation
Using pip
pip install tkeditor
Using uv
uv add tkeditor
Quick Example
import tkinter as tk
from tkeditor import Editor
root = tk.Tk()
root.title("tkeditor demo")
editor = Editor(
root,
linenumber=True,
folder_code=True,
wrap="none",
font=("Consolas", 12),
)
editor.pack(fill="both", expand=True)
root.mainloop()
Syntax highlighting
import tkinter as tk
from tkeditor import Editor
from tkeditor.lexers import PythonLexer,Highlighter
root = tk.Tk()
root.geometry("800x500")
root.title("tkeditor")
editor = Editor(
root,
linenumber=True,
folder_code=True,
wrap="none",
font=("Consolas", 12),
)
editor.pack(expand=True, fill="both")
lexer = PythonLexer()
# set custom syntax colors
# method 1
# lexer.set_styles(
# keyword={"foreground":"tomato"},
# builtin={"foreground":"steelblue"}
# )
# method 2
# lexer.set_styles({
# "keyword":{"foreground":"tomato"},
# "builtin":{"foreground":"steelblue"}
# }
# )
# Note you can also use both methods at same time
highlight = Highlighter(editor.get_text_widget(), lexer)
root.mainloop()
Project Links
License
MIT License
Metadata
Release files for tkeditor 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tkeditor-0.1.1.tar.gz | 25.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tkeditor-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 60.0 kB
Release files / tkeditor-0.1.1.tar.gz
| Download URL | tkeditor-0.1.1.tar.gz |
|---|---|
| Size | 25.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8e68546056e6b28934b03f03b08379af0db18f360e99129d518b174482f8b870
|
|
BLAKE2b-256 checksum How to use checksums |
0f1254660f948bd82896acc99e7f1dd4cffd5796db8c5495e36bab57fea76933
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.13
|
Release files / tkeditor-0.1.1-py3-none-any.whl
| Download URL | tkeditor-0.1.1-py3-none-any.whl |
|---|---|
| Size | 34.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4e5d840582a5a454c8172db16dfb180b80061c8f1686cd595378f7905b072c8b
|
|
BLAKE2b-256 checksum How to use checksums |
522b0bab82dc6c10106deb6eb2ac21662c9b94052a6d60ecacad4d6a5c6333f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.13
|