【发布时间】:2017-07-11 13:09:42
【问题描述】:
我最近开始使用名为 Geany 的轻量级 IDE。它非常高效,资源非常少,并且具有我需要的所有基本功能。它为许多编程语言(包括我正在编写的 C++)内置了语法突出显示,但是某些突出显示似乎无法正常工作。
查看上面我截取的屏幕截图,您可以看到有一些语法高亮显示,但是用户声明的函数“addition”没有应用着色,即使在配置文件中更改了它的颜色。我发现当我在配置文件中更改“运算符”的颜色时,它会将每个分号、括号等都更改为该颜色,因此显然检测效果不佳。
我认为这个问题是由于语法荧光笔的工作方式造成的,我相信这是查看 Geany GitHub 源文件的闪烁。这是专门用于 C++ 的词法分析器文件:https://github.com/geany/geany/blob/master/scintilla/lexers/LexCPP.cxx
我有几个问题:
C++ 的词法分析器文件是否可以更新为更好的文件,以便实际检测用户定义的函数以及语言的其他部分?
有没有办法查看 scintilla 识别的所有不同语法(字符串、运算符、预处理器等)?
有没有更好的语法高亮工具可以集成到 Geany 中?
【问题讨论】:
-
请使用
Stackoverflow编辑器,而不是用图像放置代码... -
@彼得。问题是关于 Geany IDE 中的语法突出显示,而不是实际代码本身。使用 SO 编辑器将完全违背目的。
-
(1) No. (2) See:
/usr/share/geany/filedefs/, (3) No. (PS: cpp lexer 不会单独解析函数名——你能得到的最接近的是"identifier",其中,像“操作员”一样,将为所有标识符着色)。 -
@ekhumoro 实际上看起来有人设法弄乱了词法分析器文件以添加功能检测:github.com/geany/geany/issues/1231。但是感谢您链接列表!
-
嗯,是的,当然 Geany 和 Scintilla 是开源的,所以总是可以修补它们。这真的是你问的吗?我没有费心指出这一点,因为我认为这是不言而喻的。无论如何,就语法高亮而言,Geany 与 Scintilla 相关联,因此您将始终受限于它可以提供的功能 - 除非您愿意贡献补丁,或 write your own lexer。
标签: c++ syntax-highlighting geany scintilla