L'ajout d'un nouvel analyseur lexical pour scintilla/scite (...et finalement wxPython StyledTextCtrl)

StackOverflow https://stackoverflow.com/questions/3297567

Question

A quelqu'un d'entre vous avez ajouté avec succès un analyseur lexical pour étincelle?

J'ai suivi les instructions courtes à http://www.scintilla.org/SciTELexer.html - et encore découvert le secret instructions supplémentaires à http://www.scintilla.org/ScintillaDoc.html#BuildingScintilla (Changeant de Lexers)

Tout compile, et je peux ajouter le lexer de SciTE, mais mon ColouriseMapfileDoc méthode n'est pas appelée (un printf ne produit pas de sortie).Si j'ajoute du même code, par exemplele ColouriseLuaDoc lexer, tout va bien (un printf n' produire en sortie).

Plus précisément, j'ai

  1. Dans scintilla/include/Scintilla.iface, a ajouté val SCLEX_MAPFILE=99
  2. Et tout lexicale Id de classe
  3. Dans la parcelle/répertoire include exécuter HFacer.py et a confirmé que l' SciLexer.h fichier a changé.
  4. Créé LexMapfile.cxx avec un ColouriseMapfileDoc la fonction
  5. À la fin du fichier associé à l'analyseur lexical ID et le nom de la fonction:

    LexerModule lmMapfile(SCLEX_MAPFILE, ColouriseMapfileDoc, "fichier");

  6. Exécuter LexGen.py pour générer tous les fichiers "makefile" (selon les instructions secrètes)

  7. Créé un nouveau SciTE fichier de propriétés par clonage scite/src/others.properties
  8. De mettre en place certains styles
  9. Dans scite/src/SciTEGlobal.properties ajouté $(filter.conf) à la définition de open.filter.
  10. Ajouté cette langue à la Langue du menu de SciTE,
  11. Construit à la fois Étincelle et SciTE.
  12. Grogna et maudit.

Ce que je fais mal, sauf peut-être l'étape 12?

Était-ce utile?

La solution

Dans le cas où quelqu'un lit cette question dans l'avenir, vous devez également ajouter une ligne import yourformat dans SciTEGlobal.properties.C'est le sans-papiers de l'étape 9b.

Autres conseils

Dans le cas où quelqu'un lit cette question dans l'avenir, vous aurez également à ajouter une ligne à l'importation yourformat dans SciTEGlobal.les propriétés.C'est le sans-papiers de l'étape 9b.

Cette étape n'est plus nécessaire.J'ai compilé 3.2.2 et cela a été fait avec l'importation *.Le reste des étapes sont toujours complètes et pertinentes si.

Je suis tordre un lexer directement dans scintilla/lexer/LexOthers.cxx comme décrit dans http://www.scintilla.org/SciTELexer.html.Pour scite 3.2.3 le manque de l'étape 5b est que vous devez ajouter LINK_LEXER(lmYouLexerMod); dans scintilla/src/Catalogue.cxx.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top