lexilla-py: Python bindings for Lexilla
Permissively-licensed Python bindings for Lexilla, the lexer library for Scintilla.
Status
Real CreateLexer/ILexer5 bindings exist: create_lexer, get_lexer_count,
get_lexer_name, and a Lexer class (name/identifier, property get/set,
word_list_set, and the raw pointer for SCI_SETILEXER). Lex/Fold and
the cross-binding/wheel-publishing work are not done yet. See
GitHub Issues for what's next.
Why this exists
Lexilla creates the lexer objects (ILexer5) that a Scintilla editor widget
attaches via SCI_SETILEXER — it's a separate, Qt-free C++ library from
Scintilla itself since Scintilla 5.0. This project exposes that library
directly to Python, so any Scintilla binding (e.g.
pyside6-scintilla) can use it
without re-implementing lexer creation itself — see
Project mission for the full background.
Development
See the Development section for the project's mission, how the vendored Lexilla source is verified against upstream, and (as they fill in) the bindings architecture and build instructions. See GitHub Issues for the ordered list of upcoming work, and the Examples section for what's planned there.
Roadmap
The project board tracks the
joint roadmap for lexilla-py and
pyside6-scintilla; issues and
PRs from both repos are added to it automatically.