La adición de un nuevo analizador léxico para scintilla/scite (...y, finalmente, wxPython StyledTextCtrl)
-
18-09-2020 - |
Pregunta
Tiene alguno de ustedes se ha añadido correctamente un analizador léxico para scintilla?
He estado siguiendo las instrucciones breves en http://www.scintilla.org/SciTELexer.html - y aún descubierto el secreto instrucciones adicionales en http://www.scintilla.org/ScintillaDoc.html#BuildingScintilla (Cambio de Conjunto de Lexers)
Todo se compila, y puedo añadir que el analizador léxico para SciTE bien, pero mi ColouriseMapfileDoc método simplemente no puede ser llamado (a printf no produce salida).Si añado el mismo código, por ejemplo,el ColouriseLuaDoc lexer, todo está bien (un printf ¿ producir la salida).
En concreto me han
- En
scintilla/include/Scintilla.iface
, agregóval SCLEX_MAPFILE=99
- Y cualquier léxica Identificadores de clase
- En la scintilla/directorio include de ejecutar
HFacer.py
y confirmó que elSciLexer.h
el archivo ha cambiado. - Creado
LexMapfile.cxx
con unColouriseMapfileDoc
la función Al final del archivo asociado al analizador léxico ID y el nombre de la función:
LexerModule lmMapfile(SCLEX_MAPFILE, ColouriseMapfileDoc, "mapfile");
Ejecutar
LexGen.py
para generar todos los makefiles (como por el secreto de las instrucciones)- Creó un nuevo SciTE archivo de propiedades por clonación
scite/src/others.properties
- Configurar algunos estilos
- En
scite/src/SciTEGlobal.properties
agregó$(filter.conf)
para la definición deopen.filter
. - Agrega este idioma para el menú de Idioma de SciTE,
- Construido Scintilla y SciTE.
- Gruñó y maldijo.
¿Qué estoy haciendo mal, excepto tal vez el paso 12?
Solución
En caso de que alguien lee esta cuestión en el futuro - usted también tendrá que añadir una línea
import yourformat
en SciTEGlobal.properties
.Que los indocumentados paso 9b.
Otros consejos
En caso de que alguien lee esta cuestión en el futuro - usted también tendrá que añadir una línea de importación yourformat en SciTEGlobal.propiedades.Que los indocumentados paso 9b.
Este paso no es necesario.He compilado 3.2.2 y esto fue hecho con la importación *.El resto de los pasos son todavía completa y relevante, aunque.
Estoy escurrir un analizador léxico directamente en scintilla/lexer/LexOthers.cxx
como se describe en http://www.scintilla.org/SciTELexer.html.Para scite 3.2.3 la falta de paso 5b es que usted necesita para agregar LINK_LEXER(lmYouLexerMod);
en scintilla/src/Catalogue.cxx
.