代码之家  ›  专栏  ›  技术社区  ›  relet

向scintilla/scite添加新的lexer(…并最终将wxpython-styledtextctrl)

  •  3
  • relet  · 技术社区  · 14 年前

    你们中有人成功地在闪烁中添加了一个莱克斯吗?

    我一直在遵循简短的指示 http://www.scintilla.org/SciTELexer.html -甚至在 http://www.scintilla.org/ScintillaDoc.html#BuildingScintilla (更改lexer集)

    一切都可以编译,我可以将lexer添加到scite中,这很好,但是我的colouriseMapFileDoc方法没有被调用(printf不产生输出)。如果我添加相同的代码,例如彩色Luadoc Lexer,一切都很好(打印 生产输出)。

    具体来说我有

    1. scintilla/include/Scintilla.iface ,补充说 val SCLEX_MAPFILE=99
    2. 以及任何词汇类ID
    3. 在scintila/include目录下运行 HFacer.py 并确认 SciLexer.h 文件已更改。
    4. 创建 LexMapfile.cxx 用一个 ColouriseMapfileDoc 功能
    5. 在文件末尾,lexer id和name与函数关联:

      lexermodule lmmapfile(sclex_mapfile,colourisemapfiledoc,“mapfile”);

    6. LexGen.py 生成所有生成文件(根据秘密指令)

    7. 通过克隆创建了新的Scite属性文件 scite/src/others.properties
    8. 设置一些样式
    9. scite/src/SciTEGlobal.properties 补充 $(filter.conf) 对…的定义 open.filter .
    10. 将此语言添加到Scite的语言菜单中,
    11. 建造了闪烁和Scite。
    12. 抱怨和诅咒。

    除了第12步,我做错了什么?

    3 回复  |  直到 12 年前
        1
  •  3
  •   relet    14 年前

    如果将来有人读到这个问题,你还需要加一行 import yourformat 在里面 SciTEGlobal.properties . 这是未记录的步骤9b。

        2
  •  3
  •   user1144598    12 年前

    如果将来有人阅读此问题,您还必须添加行导入 您在sciteglobal.properties中的格式。这是未记录的步骤9b。

    不再需要此步骤。我编译了3.2.2,这是用import*完成的。不过,其余步骤仍然完整且相关。

        3
  •  2
  •   tsingakbar    12 年前

    我要把一辆雷克斯直接拧进去 scintilla/lexer/LexOthers.cxx 如上所述 http://www.scintilla.org/SciTELexer.html . 对于Scite 3.2.3,缺少的步骤5b是需要添加 LINK_LEXER(lmYouLexerMod); 在里面 scintilla/src/Catalogue.cxx .