Visual studio code 覆盖VS代码中的默认语法着色
我试图覆盖VS代码中的默认语法着色。特别是在默认的主题灯Visual Studio中,我希望看到036A07绿色,而不是a31515 redish颜色 为此,在我的user settings.json文件中的editor.tokenColorCustomizations中,我更改了以下默认值:Visual studio code 覆盖VS代码中的默认语法着色,visual-studio-code,vscode-settings,Visual Studio Code,Vscode Settings,我试图覆盖VS代码中的默认语法着色。特别是在默认的主题灯Visual Studio中,我希望看到036A07绿色,而不是a31515 redish颜色 为此,在我的user settings.json文件中的editor.tokenColorCustomizations中,我更改了以下默认值: "editor.tokenColorCustomizations": null 致: 我保存了settings.json文件并重新启动了VS代码,但在突出显示与以前相同的redish颜色的代码中没有看到
"editor.tokenColorCustomizations": null
致:
我保存了settings.json文件并重新启动了VS代码,但在突出显示与以前相同的redish颜色的代码中没有看到任何更改:
问题:我的代码有什么问题?正确的代码是什么
根据下面的@tHeSiD-answer,我创建了这段代码,它成功了:
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"name": "Single Quotes",
"scope": "string.quoted.single.python",
"settings": {
"fontStyle": "",
"foreground": "#036A07"
}
}]
}
仅用于特定主题的设置:
"editor.tokenColorCustomizations": {
"[Visual Studio Light]": {
"textMateRules": [
{
"name": "Single Quotes",
"scope": "string.quoted.single.python",
"settings": {
"fontStyle": "",
"foreground": "#036A07"
}
}]
}
}
它也可以在不将editor.semanticHighlighting.enabled设置为false的情况下工作您必须像这样添加每个范围的定义
"semanticTokenColors": {
"namespace": "#ffffff",
"type": "#ffffff",
"struct": "#ffffff",
"class": "#ffffff",
"class.readonly": {
"foreground": "#ffffff",
"fontStyle": "bold italic"
},
"*.declaration" : {
"fontStyle": "bold"
},
"*.readonly" : "#ffffff",
}
要获取所需的范围,请使用命令调色板CTRL-SHIFT-p,然后选择Developer:Inspect Editor标记和范围
这些是textmate规则,您必须禁用语义突出显示才能正常工作。为此,请添加editor.semanticHighlighting.enabled:false
但是,如果您想通过语义高亮显示为所有内容上色,则必须使用类似的方法
"semanticTokenColors": {
"namespace": "#ffffff",
"type": "#ffffff",
"struct": "#ffffff",
"class": "#ffffff",
"class.readonly": {
"foreground": "#ffffff",
"fontStyle": "bold italic"
},
"*.declaration" : {
"fontStyle": "bold"
},
"*.readonly" : "#ffffff",
}
您必须像这样添加每个范围的定义
"semanticTokenColors": {
"namespace": "#ffffff",
"type": "#ffffff",
"struct": "#ffffff",
"class": "#ffffff",
"class.readonly": {
"foreground": "#ffffff",
"fontStyle": "bold italic"
},
"*.declaration" : {
"fontStyle": "bold"
},
"*.readonly" : "#ffffff",
}
要获取所需的范围,请使用命令调色板CTRL-SHIFT-p,然后选择Developer:Inspect Editor标记和范围
这些是textmate规则,您必须禁用语义突出显示才能正常工作。为此,请添加editor.semanticHighlighting.enabled:false
但是,如果您想通过语义高亮显示为所有内容上色,则必须使用类似的方法
"semanticTokenColors": {
"namespace": "#ffffff",
"type": "#ffffff",
"struct": "#ffffff",
"class": "#ffffff",
"class.readonly": {
"foreground": "#ffffff",
"fontStyle": "bold italic"
},
"*.declaration" : {
"fontStyle": "bold"
},
"*.readonly" : "#ffffff",
}
如果你想通过语义学在这里做,谢谢你。成功了。我有一个问题:它在没有编辑器的情况下工作。这里也没有关于该步骤的信息。如果我保持启用状态,会有任何问题吗?是的,会出现什么问题?到目前为止,默认情况下,语义突出显示仅适用于vscode中的TS和JS,并且您的语言服务器特定语言扩展支持它。因此,如果在检查语义范围时看不到语义范围,则该设置不会影响任何内容!:将来,如果您的语言服务器增加了对语义突出显示的支持,那么这些设置将覆盖您的textmate规则。顺便问一下,这是什么?这里还有更多,因为我低估了名称的值,比如这里的名称:Deleted is Deleted可以是任意的,并且不会影响任何内容,对吗?是的,这只是对规则的描述。你可以用它来命名你的规则,以便以后可以很容易地找到它们。如果你想在这里通过语义来实现,谢谢。成功了。我有一个问题:它在没有编辑器的情况下工作。这里也没有关于该步骤的信息。如果我保持启用状态,会有任何问题吗?是的,会出现什么问题?到目前为止,默认情况下,语义突出显示仅适用于vscode中的TS和JS,并且您的语言服务器特定语言扩展支持它。因此,如果在检查语义范围时看不到语义范围,则该设置不会影响任何内容!:将来,如果您的语言服务器增加了对语义突出显示的支持,那么这些设置将覆盖您的textmate规则。顺便问一下,这是什么?这里还有更多,因为我低估了名称的值,比如这里的名称:Deleted is Deleted可以是任意的,并且不会影响任何内容,对吗?是的,这只是对规则的描述。您可以使用它来命名您的规则,以便以后可以很容易地找到它们。