如何正确设置 Scintilla 关键字突出显示?
Posted
技术标签:
【中文标题】如何正确设置 Scintilla 关键字突出显示?【英文标题】:How to properly setup Scintilla keyword highlighting? 【发布时间】:2012-06-20 12:39:03 【问题描述】:我将 Scintilla
组件与 DScintilla
包装器一起使用,并在任何词法分析器中突出显示关键字时出错。以帕斯卡为例:
with DScintilla do
begin
SetLexer(SCLEX_PASCAL);
StyleSetFore(SCE_PAS_WORD, clGreen);
StyleSetFore(SCE_PAS_OPERATOR, clRed);;
StyleSetFore(SCE_PAS_IDENTIFIER, clBlue);
SetText('begin a+b; end');
end
此代码正确突出显示标识符和运算符,但关键字与标识符具有相同的颜色。 SciLexer 似乎无法比较这个库中的字符串。
【问题讨论】:
不,SCE_PAS_WORD 表示关键字。对于 haskell,定义了一个常量 SCE_HA_KEYWORD,但也不起作用 【参考方案1】:关键字必须手动添加。
SetKeyWords(0,'begin end');
【讨论】:
这虽然有帮助,但它会失去词法分析器本身的含义,参见例如进入pascal.properties
,那里已经指定了关键字(但不知道是否包含在词法分析器二进制文件中)。以上是关于如何正确设置 Scintilla 关键字突出显示?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Scintilla 中突出显示的文本片段之间进行插入符号跳转?
删除 Scintilla JavaScript 词法分析器中的青色突出显示