Scintillua adds dynamic Lua LPeg lexers to Scintilla. It is the quickest way to add new or customized syntax highlighting and code folding for programming languages to any Scintilla-based text editor or IDE. Scintillua was designed to be dropped into or compiled with any Scintilla environment.
Scintillua may also be used as a standalone Lua library for obtaining syntax highlighting information of source code snippets. Scintilla is not required in that case.
- Drop-in installation in most Scintilla environments – no modifications to Scintilla are necessary.
- Support for over 120 programming languages.
- Easy lexer embedding for multi-language lexers.
- Universal color themes.
- Comparable speed to native Scintilla/Lexilla lexers.
- Can be used as a standalone Lua library (Scintilla is not required).
Scintillua requires Scintilla 4.4.5 or greater for a drop-in installation. When compiling Scintillua, Scintilla 5.0.1 or greater and Lexilla 5.0.0 are required. The drop-in external lexer already has Lua and LPeg are pre-compiled into it.
When used a standalone Lua library, Scintillua requires Lua 5.1 or greater and LPeg 1.0.0 or greater. Scintilla is not required.
Installation and Usage
Scintillua comes with a user manual in its docs/ directory. It covers how to drop Scintillua into an existing installation of a Scintilla-based application, how to compile Scintillua into your Scintilla-based application, and how to use Scintillua as a standalone Lua library.
As an example, you can drop Scintillua into an existing installation of SciTE, the SCIntilla based Text Editor, by moving Scintillua’s lexers/ directory into SciTE’s installation directory, and then adding the following to your SciTEUser.properties (Windows), .SciTEUser.properties (Linux), or SciTEGlobal.properties (either) file:
Scintillua’s Application Programming Interface (API) documentation is also located in docs/. It provides information on how your Scintilla-based application can utilize Scintillua and communicate with it, and also how to write and utilize Lua lexers.
Scintillua can be built as an external Scintilla lexer, or it can be built directly into a Scintilla-based application. The standalone Lua library does not need to be compiled.
Scintillua currently only builds on Linux and BSD, though it can be cross-compiled for Windows.
- GNU C compiler (gcc) 7.1+ (circa mid-2017)
- mingw-w64 5.0+ with GCC 7.1+ when cross-compiling for Windows.
In order to build the external lexer:
- Place a copy of Scintilla in the root directory of Scintillua (the Scintilla directory should be called scintilla/).
- Place a copy of Lexilla in the root directory of Scintillua (the Lexilla directory should be called lexilla/).
- The external lexer is either lexers/liblexlpeg.so or lexers/LexLPeg.dll.
For more information on compiling Scintillua, including how to compile Scintillua directly into your Scintilla-based application please see the manual.
Scintillua is open source. Feel free to submit new lexers, report bugs, ask for help, and discuss features. You can also contact me personally (orbitalquark.att.triplequasar.com). Thanks to everyone who has contributed.