在settings.json中为Visual Studio Code主题添加操作符

8
我正在尝试将"Visual Studio Dark"主题(包含在vscode常规下载中,在"选择颜色主题"屏幕中称为"Dark (Visual Studio)")中的单词andornot(用于Lua)加入。我在网上搜索后找到了这个页面:Visual Studio Code主题。该页面通过其中的图片清楚地表明,通过在settings.json文件中添加设置即可完成此操作。我像那个页面第二和第三张图片中那样添加了"editor.tokenColorCustomizations"设置。
之后我阅读了另外两页相关内容,发现这个页面:Scope Naming,它说明了要给我的规则添加运算符"and",需要使用的作用域是"keyword.operator.word"
接着我使用了一个在线取色器从所需语法高亮图片中获取了特定的颜色。(我找不到定义此文件的文件,但这是第二个问题。)以下是我得到的结果:
"editor.tokenColorCustomizations": {
    "textMateRules": [
        {
            "scope": "keyword.operator.word",
            "settings": {
                "foreground": "#569BD2"
        }
    ]
}

但是在保存文件、关闭窗口并重新打开之后,我看到的是这样的:

似乎无法工作

1个回答

10

正如 Developer: Inspect TM scopes 命令所示,andornot 运算符不使用 keyword.operator.word 作用域,而是使用keyword.operator.lua

因此,以下代码可以正常工作:

"editor.tokenColorCustomizations": {
    "textMateRules": [
        {
            "scope": "keyword.operator.lua",
            "settings": {
                "foreground": "#569BD2"
            }
        }
    ]
}
请注意,作用域名称不指定它是什么类型的运算符,因此这将适用于所有运算符,而不仅仅是andornot。唯一改变这种情况的方法是修改语言语法/TmLanguage文件本身,在Lua的情况下,该文件与VSCode一起提供。


最终我将 and or not 添加到了 TmLanguage 文件中,与控制关键字位于同一位置,以避免其他运算符也变成蓝色。 - matjojo

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