如何为 editor.tokenColorCustomizations 编写一个 TextMate 选择器,以在文档注释中针对 C# 类名的嵌套范围?

问题描述 投票:0回答:1

我想在我的 VS Code 主题中自定义 C# 类名称的颜色,但只能自定义 XML 注释中的引用。例如:

/// <see cref="Content"/> // (1) Should be customized.
class Content {} // (2) Should be the default.

根据范围检查员的说法,(1)和(2)都被着色为

entity.name.type.class

(1) 的textmate 范围 是:

  • string.quoted.double.cs
  • meta.tag.cs
  • comment.block.documentation.cs
  • source.cs

(2) 的textmate 范围 是:

  • entity.name.type.class.cs
  • source.cs

我试过更新

settings.json

{
  "editor.tokenColorCustomizations": {
    "[Visual Studio 2019 Dark]": {
      "textMateRules": [
        { "scope": "entity.name.type.class", "settings": { "foreground": "#FF0000" } },
        { "scope": "comment.block.documentation.cs entity.name.type.class", "settings": { "foreground": "#00FF00" } },
        { "scope": "comment.block.documentation.cs>entity.name.type.class", "settings": { "foreground": "#0000FF" } },
        { "scope": "comment.block.documentation.cs+entity.name.type.class", "settings": { "foreground": "#00FFFF" } }
      ]
    }
  }
}                

只有第一条规则有效,但同时更新 (1) 和 (2),而不仅仅是 (1)。


版本:1.77.1
提交:b7886d7461186a5eac768481578c1d7ca80e2d21
操作系统:Windows_NT x64 10.0.19044

c# json visual-studio-code syntax-highlighting textmate
1个回答
0
投票

您现在可以获得的最好的为 VS Code 的内置 C# 支持定义的 textmate 范围 是在 C# 文档块的 C# 元标记中选择all C# 双引号字符串。 (你的前提是错误的。你声明“According to the scope inspector, both (1) and (2) is colored as

entity.name.type.class
.”然后立即表明那是错误的,我已经在本地验证过)。

他们可以做我上面描述的事情的方式是使用后代选择器

comment.block.documentation.cs meta.tag.cs string.quoted.double.cs
© www.soinside.com 2019 - 2024. All rights reserved.