微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vscode 的语义标记着色不适用于字符串

如何解决vscode 的语义标记着色不适用于字符串

我在 settings.json 中有这些行:

  "editor.semanticTokenColorCustomizations": {
        "enabled": true,"rules": {
          "string": { "foreground": "#ff0000" },// doesn't work
          "*.declaration": { "bold": true },// works
        }
  },

请注意,这里有两条规则,但尽管第二条有效,但第一条(为“字符串”着色的规则)不起作用:

enter image description here

现在,根据 herehere,“字符串”标记确实存在,所以它应该可以工作(除非我遗漏了什么)。

一个猜测是,可能有一个主题妨碍了,但我卸载了所有非主题,但结果是一样的(声明为粗体,而字符串未着色)。

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 举报,一经查实,本站将立刻删除。