2

我想在 Notepad++ 中为 Python 内置函数添加语法高亮。我在 AppData/Notepad++ 中修改了 langs.xml,将这一行添加到 python 标记中:

<Keywords name="instre2">len max min sum map str int reduce</Keywords>

我还在同一位置的 stylers.xml 中的 python 标记中添加了这一行:

<WordsStyle name="BUILTINS" styleID="13" fgColor="8080FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" keywordClass="instre2" />

当我转到 Settings->Style Configurator->Python->BUILTINS 时,我会看到我的内置函数列表以及我分配给它们的颜色。但是,在编辑 Python 文件时,内置函数不会突出显示。为什么是这样?

我在这里找到了类似的东西,但我找不到文件 LexPython.cxx。我该如何解决这个问题?有可能解决吗?

4

3 回答 3

1

基于 .cxx 文件扩展名,这将使LexPython.cxx成为 c++ 源文件,因此听起来您需要编写 Python 词法分析器并将其添加到 Notepad++ 构建过程。

于 2012-06-03T04:22:22.033 回答
0

他的意思是Notepad++源代码包中的“...\scintilla\lexers\LexPython.cxx” 。

您不能像那样添加其他类型。例如,我建议您将BUILTINS单词简单地添加到现有的KEYWORDS列表中。这就是我通常做的。

于 2012-06-02T08:41:09.243 回答
0

你快到了...只需将你添加的关键字列表的 styleID 设置为 14,只有 14 个有效。现在您可以通过样式配置器设置颜色。看这里的效果 内置函数高亮 内置函数 int() 和 range() 用自定义颜色渲染。

一点解释:

这里指出“...... Syntilla 词法分析器使用预定义的数字来着色事物(这些是“styleID”)......”并且它们是为每种语言定义的。您可以在 notepad++ 源文件 SciLexer.h 中查看它。

实际上有一个为 python (SCE_P_WORD2) 定义的 id 为 14 的组 WORD2,但它没有在默认的 stylers.xml 中使用。

于 2017-04-02T05:27:29.810 回答