lexilla-py: Python bindings for Lexilla
Permissively-licensed Python bindings for Lexilla, the lexer library for Scintilla.
Status
See GitHub Issues for what's done and 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. In practice,
pyside6-scintilla is its only
consumer, wired up via the set_lexer() convenience function (see Usage
below) rather than raw SCI_SETILEXER pointer plumbing; it's kept as a
separate package so this binding's release cadence and vendored Lexilla
version can track upstream Lexilla releases independently of
pyside6-scintilla's own release cycle — see
docs/specs/mission.md for the full background.
Goals
lexilla aims to be:
- MIT licensed — usable in open-source or closed-source projects freely
- A faithful, low-level binding of Lexilla's
CreateLexer/ILexer5C++ API — not a redesign of it - Vendored and versioned independently of pyside6-scintilla — exposes
the lexer as a raw pointer (
SCI_SETILEXER-compatible), so this package can track upstream Lexilla releases on its own schedule - Available as pre-built wheels for Linux (x86_64, aarch64), Windows (x86_64), and macOS (arm64, x86_64)
- Not affiliated with the Scintilla/Lexilla project
Installation
Install from PyPI:
pip install lexilla
Usage
from lexilla import Language, create_lexer
from lexilla.pyside6_scintilla import set_lexer
from pyside6_scintilla import ScintillaEdit
editor = ScintillaEdit()
lexer = create_lexer(Language.CPP)
assert lexer is not None
set_lexer(editor, lexer)
set_lexer() hands a created lexer to a pyside6-scintilla ScintillaEdit
via SCI_SETILEXER, transferring ownership to it — see
lexilla_highlighting
for a complete example.
Versioning
Version numbers follow <Lexilla version>.<binding revision> — e.g. 5.5.0.0
is binding revision 0 for Lexilla 5.5.0. The binding revision increments
for releases of this package that don't correspond to a new Lexilla version,
and resets to 0 when Lexilla itself releases a new version.
Documentation
| Doc | Contents |
|---|---|
| docs/auditing.md | How to verify the vendored Lexilla source matches upstream |
| docs/bindings.md | How the nanobind bindings are built, and how they're expected to grow |
| docs/build.md | Build prerequisites, local build/rebuild, wheels, and publishing |
| docs/documenting.md | How the docs site is built (stub) |
| docs/specs/ | Design specifications and action plans for in-progress and planned work |
| docs/specs/mission.md | Project background, goals, and design decisions |
| docs/testpypi.md | Setting up TestPyPI trusted publishing |
| examples/ | No examples of its own — see pyside6-scintilla/examples/ |
| GitHub Issues | Ordered list of upcoming work |
| Project board | Joint roadmap for lexilla-py and pyside6-scintilla; issues/PRs from both repos are auto-added |
License
src/lexilla_vendor/— HPND License (Lexilla, copyright Neil Hodgson)- Everything else — MIT License
Release files for lexilla 5.5.0.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 | |
|---|---|---|---|
| lexilla-5.5.0.1.tar.gz | 1.0 MB | Details |
Built distributions (wheels)
Total release size: 10.2 MB
Release files / lexilla-5.5.0.1.tar.gz
| Download URL | lexilla-5.5.0.1.tar.gz |
|---|---|
| Size | 1.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cda0dc86102a9138b746216d2ec4c34dedf2736f7ccc1675125c09082592f58f
|
|
BLAKE2b-256 checksum How to use checksums |
ebb79e57cdf273f419ffd30fc548ef3b70d6305759a31876ed303b5858563c25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.
Transparency logRelease files / lexilla-5.5.0.1-cp312-abi3-win_amd64.whl
| Download URL | lexilla-5.5.0.1-cp312-abi3-win_amd64.whl |
|---|---|
| Size | 782.6 kB |
| Tags | CPython 3.12 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
b344841152275e3fb57f0243281ad09cf79505fc1e02c6338a47f3ab926d7876
|
|
BLAKE2b-256 checksum How to use checksums |
1299dd03411bc99e84506b7044d61a14a1c6f6cdd73a5394423bf10256b6689c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.
Transparency logRelease files / lexilla-5.5.0.1-cp312-abi3-manylinux_2_39_aarch64.whl
| Download URL | lexilla-5.5.0.1-cp312-abi3-manylinux_2_39_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 Linux glibc 2.39+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
3f683c6cb1431f6308d78b73f3970eb31fd60bbbf00cca4376a2b91cfe117bd4
|
|
BLAKE2b-256 checksum How to use checksums |
38accad9b3d82fcd0b4bdbbbeb449d1244f8d02bf2f4dd98aabcc19b0bf19d2b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.
Transparency logRelease files / lexilla-5.5.0.1-cp312-abi3-manylinux_2_34_x86_64.whl
| Download URL | lexilla-5.5.0.1-cp312-abi3-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 Linux glibc 2.34+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
b0bfc642b94691010fa280a6e63247f46e60d5baa02c31e03f78d5112fa89b28
|
|
BLAKE2b-256 checksum How to use checksums |
0f5917bdff16a371e8eca8b8f6cf117b809a78396436295bf9013f93d0c05109
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.
Transparency logRelease files / lexilla-5.5.0.1-cp312-abi3-macosx_11_0_arm64.whl
| Download URL | lexilla-5.5.0.1-cp312-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 716.0 kB |
| Tags | CPython 3.12 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6842917bf468626df27e6ad4e6ce27dd47a840c09a0a81306b2e6848a4920e22
|
|
BLAKE2b-256 checksum How to use checksums |
15992f9d46775ab0e0c4c9dad5cdeb81e6e12c962f3be82b3e52d250e8e97c4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.
Transparency logRelease files / lexilla-5.5.0.1-cp312-abi3-macosx_10_13_x86_64.whl
| Download URL | lexilla-5.5.0.1-cp312-abi3-macosx_10_13_x86_64.whl |
|---|---|
| Size | 849.9 kB |
| Tags | CPython 3.12 abi3 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
e05f9ddda41e9888a9331b68c84c0d76098d4e711cc7dafd03afa6ba6b09e902
|
|
BLAKE2b-256 checksum How to use checksums |
a0bf1cec42a3d408ea5562ba9f555bfb6703fe10c68d04c7503347c9c3d51042
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.
Transparency logRelease files / lexilla-5.5.0.1-cp311-cp311-win_amd64.whl
| Download URL | lexilla-5.5.0.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 784.7 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
77b85fd040526aa81a1ede6aae2ef0c04176302dedf70f5e00b24bb2b5383e38
|
|
BLAKE2b-256 checksum How to use checksums |
482459313ec34fc335963f0314cb9e600beb0497d7b8b4e9c806f33c3790108f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.
Transparency logRelease files / lexilla-5.5.0.1-cp311-cp311-manylinux_2_39_aarch64.whl
| Download URL | lexilla-5.5.0.1-cp311-cp311-manylinux_2_39_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.11 Linux glibc 2.39+ ARM64 |
|
SHA-256 checksum How to use checksums |
a38badd42cc8745342018e88604110921aec4f75ed0208d4e7de388c77e4740c
|
|
BLAKE2b-256 checksum How to use checksums |
383983f76733eedc0cb71ec5c910fa7e14e03f4ee5927947d973ee60fff5396e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.
Transparency logRelease files / lexilla-5.5.0.1-cp311-cp311-manylinux_2_34_x86_64.whl
| Download URL | lexilla-5.5.0.1-cp311-cp311-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.11 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
e66fb88b81abf2489229bc23edf0833f9434406b245fc7ba3d457637b8e1a1ca
|
|
BLAKE2b-256 checksum How to use checksums |
70e2c7bd31af34fe6336bbf2a3507958802de75315bb74342e61a6ad0065f833
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.
Transparency logRelease files / lexilla-5.5.0.1-cp311-cp311-macosx_11_0_x86_64.whl
| Download URL | lexilla-5.5.0.1-cp311-cp311-macosx_11_0_x86_64.whl |
|---|---|
| Size | 852.5 kB |
| Tags | CPython 3.11 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
5e670e00a20594f87c508a8ce0d0ea2852e1e48c0411b322c52c796efb0d8b2f
|
|
BLAKE2b-256 checksum How to use checksums |
563e71bcf1f522dc06bebace7859ab03c3899c9c008f8b2822a87208db4749b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.
Transparency logRelease files / lexilla-5.5.0.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | lexilla-5.5.0.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 718.4 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
690f070baca06bc7a3607ef9687e077cda34d8873ea9cd2148959574a6ead364
|
|
BLAKE2b-256 checksum How to use checksums |
52f0b6dcfab5a96d20dab949a3e87f87b87fa77dfd1c9ecfc1cc90d4c7532b0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.
Transparency log