【发布时间】:2011-03-18 21:00:00
【问题描述】:
有没有人成功地将词法分析器添加到 scintilla?
我一直在遵循 http://www.scintilla.org/SciTELexer.html 的简短说明 - 甚至在 http://www.scintilla.org/ScintillaDoc.html#BuildingScintilla 发现了秘密的额外说明(更改 Lexers 集)
一切都可以编译,我可以将词法分析器添加到 SciTE 中,但我的 ColouriseMapfileDoc 方法没有被调用(printf 不会产生输出)。如果我将相同的代码添加到例如ColouriseLuaDoc 词法分析器,一切都很好(printf 确实产生输出)。
特别是我有
- 在
scintilla/include/Scintilla.iface,添加val SCLEX_MAPFILE=99 - 以及任何词法类 ID
- 在 scintilla/include 目录中运行
HFacer.py并确认SciLexer.h文件已更改。 - 使用
ColouriseMapfileDoc函数创建LexMapfile.cxx -
在文件末尾将词法分析器 ID 和名称与函数相关联:
LexerModule lmMapfile(SCLEX_MAPFILE, ColouriseMapfileDoc, "mapfile");
运行
LexGen.py以生成所有makefile(根据秘密指令)- 通过克隆
scite/src/others.properties创建了一个新的 SciTE 属性文件 - 设置一些样式
- 在
scite/src/SciTEGlobal.properties中将$(filter.conf)添加到open.filter的定义中。 - 将此语言添加到 SciTE 的语言菜单中,
- 同时构建 Scintilla 和 SciTE。
- 抱怨和诅咒。
除了第 12 步之外,我做错了什么?
【问题讨论】:
标签: lexer scintilla scite umn-mapserver