我该如何改变括号的颜色?

7
这可能是一个通用的vsCode问题,但我正在尝试在Microsoft Python插件中使其工作。
我尝试了所有在编辑设置文件时显示为智能感知建议的textMate定义,但都没有起作用。
我想要对括号、大括号和方括号进行着色,或者对任何其他标记进行着色,以便在前面的标识符(函数名或集合名)与定界符内部的内容(函数参数或集合索引)之间产生视觉差异。
function(arg1, arg2)
collection[index]  

screenshot


寻找一个类似于原版 VS Code 的主题? - El Dude
1个回答

17
在Visual Studio Code中,您可以根据个人需求自定义许多语法颜色。
假设我们想要更改特定逗号的语法颜色 - 例如用于分隔函数参数的逗号 - 您需要知道该标记具有什么标识符。要找出这一点,只需按下ctrl+shift+P,然后键入Developer: Inspect TM Scopes

enter image description here

然后在已打开的脚本中任意点击并选择您想了解更多的字符或关键字。如下所示,在Python函数参数之间逗号的标识符为punctuation.separator.parameters.python(顺便说一句,还有一个名为punctuation.separator.arguments.python的标记,因此您甚至可以使用不同的颜色来表示参数之间的逗号):

enter image description here

现在您已经获得了该令牌所需的标识符,您可以将以下内容添加到 settings.json 中:

"editor.tokenColorCustomizations": {
    "textMateRules": [
        {
        "scope": "punctuation.separator.parameters.python",
            "settings": {
                "foreground": "#ff8800",
                "fontStyle": "bold"
            }
        }
    ]
}

正如您所看到的,您不仅可以更改颜色,还可以更改字体样式,如果需要,您可以在"textMateRules"中放置尽可能多的作用域。

这适用于括号、方括号、花括号以及冒号、任何类型的运算符、关键字如classdef等。

通过这种方式,您可以调整语法着色而无需更改整个主题。当然,您几乎可以在VSCode中使用所有可用的语言进行此操作。

注意:上面的代码仅适用于Python语言,并且仅在Python脚本中显示所选颜色。对于其他编程语言,您首先必须检查所需语言的代码(如上所述)以查找标记符的标识符(不幸的是,我尚未找到所有可用标记的列表,如果有人知道从哪里或如何获取它,请随意添加评论 - 谢谢)。


哇,这简直是一个教程,而不仅仅是一个答案。谢谢! 我实际上使用了.generic范围,所以我想它们也适用于其他语言。 现在我的代码看起来像波洛克的画作,但那是另一个问题。 - Petruza
1
非常好的描述。 注意:如果您想定义相同的颜色,可以将多个作用域添加到“scope”中,使用逗号分隔。 - Markus Doerig
1
谢谢!那个检查工具非常有用。 - Mark
检查器太好了。能够进行许多特定的自定义。 - Ani
1
真是一份神仙般的答案。非常感谢。"inspect TM scopes" 就是我们需要的,可以让我们自己修改语法颜色。 - R.R.C.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接