Skip to main content

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)

Source distribution for tkeditor 0.1.1
File Size Uploaded
tkeditor-0.1.1.tar.gz 25.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tkeditor 0.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page