如何解决vscode 的语义标记着色不适用于字符串
我在 settings.json 中有这些行:
"editor.semanticTokenColorCustomizations": {
"enabled": true,"rules": {
"string": { "foreground": "#ff0000" },// doesn't work
"*.declaration": { "bold": true },// works
}
},
请注意,这里有两条规则,但尽管第二条有效,但第一条(为“字符串”着色的规则)不起作用:
现在,根据 here 和 here,“字符串”标记确实存在,所以它应该可以工作(除非我遗漏了什么)。
另一个猜测是,可能有一个主题妨碍了,但我卸载了所有非默认主题,但结果是一样的(声明为粗体,而字符串未着色)。
PS:我没有使用 textmate 规则,因为当我尝试标记检查时,它以更详细的方式为所有内容建议了这么多标记,但我不想写这么多规则,当我想要的只是只是为所有字符串着色的规则。
编辑:我决定也尝试一下 Textmate 的方式,字符串的范围将是 string.quoted.double
,但这一次,它不能与之前的规则混合!所以现在着色规则有效,而样式则无效:
"editor.tokenColorCustomizations": {
"enabled": true,"rules": {
"*.declaration": { "bold": true },// doesn't work
},"textMateRules": [
{
"scope": "string.quoted.double","settings": {
"foreground": "#ff0000",// works
},}
],},
解决方法
最后,同时使用textmate和语义定制,并且“单独”编写这两个规则似乎有效(textmate方法是visual studio代码的较旧(原始)标记化方法,而语义方法是最近添加的) :
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "string.quoted.double","settings": {
"foreground": "#8b7a69"
}
}
]
},"editor.semanticTokenColorCustomizations": {
"enabled": true,"rules": {
"*.declaration": { "bold": true },}
},
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。