visual-studio-code - 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 },
}
},
推荐阅读
- r - 按 X 轴值排序热图
- c# - 如何将数据存储在数组的单行上?
- javascript - 为什么我在发出 get 请求时会收到未处理的 promise 错误
- excel - 将 .xlsm 文件转换为 .xls 并使用 Excel VBA 通过 Outlook 发送附件
- javascript - 如何覆盖 Google Cloud Tasks Node.js 客户端的重试配置
- postgresql-10 - 撤消在另一个函数中调用的函数事务
- android - Android BottomNavigationBar 每个选项卡的唯一图标色调列表?
- mercurial - 如何从自定义挂钩中读取配置设置?
- java - 如何与加密的 SQS 队列交互?KMS 密钥访问不起作用
- python - 哪种文件处理方式更好:'r' + 'a' 或 'r+'?