3

有没有人成功地将词法分析器添加到闪烁?

我一直在遵循 http://www.scintilla.org/SciTELExer.html 上的简短说明 - 甚至在http://www.scintilla.org/ScintillaDoc.html#BuildingScintilla发现了秘密的额外说明更改 Lexers 集)

一切都可以编译,我可以很好地将词法分析器添加到 SciTE,但是我的 ColouriseMapfileDoc 方法没有被调用(printf 不会产生输出)。如果我将相同的代码添加到例如 ColouriseLuaDoc 词法分析器中,一切都很好(printf确实会产生输出)。

具体来说我有

  1. scintilla/include/Scintilla.iface,添加val SCLEX_MAPFILE=99
  2. 以及任何词汇类 ID
  3. 在 scintilla/include 目录中运行HFacer.py并确认SciLexer.h文件已更改。
  4. LexMapfile.cxxColouriseMapfileDoc函数创建
  5. 在文件的末尾,将词法分析器 ID 和名称与函数相关联:

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

  6. 运行LexGen.py以生成所有 makefile(根据秘密说明)

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

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

4

3 回答 3

3

如果将来有人读到这个问题 - 您还必须在 SciTEGlobal.properties 中添加一行 import yourformat。这是未记录的步骤 9b。

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

于 2012-10-30T01:05:01.367 回答
3

如果将来有人读到这个问题 - 您还必须 import yourformatSciTEGlobal.properties. 这是未记录的步骤 9b。

于 2010-07-26T07:16:17.357 回答
2

scintilla/lexer/LexOthers.cxxhttp://www.scintilla.org/SciTElexer.html中所述,我正在直接拧一个词法分析器。对于 scite 3.2.3 ,缺少的步骤 5b 是您需要添加LINK_LEXER(lmYouLexerMod);.scintilla/src/Catalogue.cxx

于 2012-11-19T09:42:18.447 回答