0

我认为有更复杂的方法来更改语法突出显示,我目前无法遵循。因此,我尝试了一种我认为更简单的方法,即通过修改默认配色方案的 .tmTheme 之一(位于 Packages/Color Scheme - Default 中)。

例如,在 Monokai.tmTheme 中,如果我添加

    <dict>
        <key>name</key> 
        <string>PyVariable</string>
        <key>scope</key>
        <string>source.python meta.item-access.python</string>
        <key>settings</key>
        <dict>
            <key>foreground</key>
            <string>#FD971F</string>
       </dict>
   </dict>

我能够修改 Scope 'source.python meta.item-access.python' 下的 Python 语法的颜色编码。

但是,对于我在 Python 中声明的变量,当我使用 Ctrl+Alt+Shift+P 键时,我没有得到专门的作用域;我只看到'python.source'。如果在 .tmTheme 文件中使用此 Scope,则 python.source 下所有内容的语法(以前未编码为白色)都会更改。

我意识到我可能正在尝试一种行不通的方法,但我想我会试一试。也许更复杂的方法,我必须“生成 JSON 文件”等,是我必须做的。

感谢您对复杂文本编辑器的新手的耐心等待 :)

4

1 回答 1

1

如果您想查看几乎涵盖所有 Python 范围的主题,请查看我的Neon Theme,该主题也可通过Package Control获得。基本上,通过尝试编辑.tmTheme文件以获取范围,您正在做正确的事情。Python 的问题在于,没有单一的方式来判断标识符是否是变量,因为没有像$my_varPHP 那样的语法。my_var在 Python 中可以是字符串变量、函数或类的名称(尽管名称不好)、列表、字典、元组......等等。所以,在 ST2 中,变量只是source.python并且不能单独突出显示。

好消息是可以突出显示许多其他内容,例如函数定义(它们在关键字之后def)、函数调用(它们()后面有括号)、不同类型的字符串(单引号、双引号、原始、比特流、Unicode 等),以及一堆其他的东西。如果您计划更多地使用主题和范围,我建议您获取ScopeHunter插件,因为当它们显示在面板中时更容易获得各个范围,而不是短暂出现在状态栏上。

于 2013-07-24T17:48:05.333 回答