Has anyone of you successfully added a lexer to scintilla?
I have been following the short instructions at http://www.scintilla.org/SciTELexer.html - and even discovered the secret extra instructions at http://www.scintilla.org/ScintillaDoc.html#BuildingScintilla (Changing Set of Lexers)
Everything compiles, and I can add the lexer to SciTE just fine, but my ColouriseMapfileDoc method just does not get called (a printf does not produce output). If I add the same code to e.g. the ColouriseLuaDoc lexer, everything is fine (a printf does produce output).
Specifically I have
- In
scintilla/include/Scintilla.iface
, addedval SCLEX_MAPFILE=99
- And any lexical class IDs
- In the scintilla/include directory run
HFacer.py
and confirmed that theSciLexer.h
file has changed. - Created
LexMapfile.cxx
with aColouriseMapfileDoc
function At the end of the file associated the lexer ID and name with the function:
LexerModule lmMapfile(SCLEX_MAPFILE, ColouriseMapfileDoc, "mapfile");
Run
LexGen.py
to generate all the makefiles (as per the secret instructions)- Created a new SciTE properties file by cloning
scite/src/others.properties
- Set up some styles
- In
scite/src/SciTEGlobal.properties
added$(filter.conf)
to the definition ofopen.filter
. - Added this language to the Language menu of SciTE,
- Built both Scintilla and SciTE.
- Grumbled and cursed.
What am I doing wrong, except maybe step 12?
In case someone reads this question in the future - you will also have to add a line
import yourformat
inSciTEGlobal.properties
. That's the undocumented step 9b.