如何让VSCode主题识别C#接口?

Pre*_*nov 4 c# visual-studio-code vscode-settings

我试图让Visual Studio Code的主题符合我的要求.目前,我正在尝试使用Obsidian使用C#规则,但我不确定使用哪个关键字来覆盖颜色自定义.VSCode似乎不识别接口,因为它们是特定于语言的.

"editor.tokenColorCustomizations": {
        "functions" :{
            "foreground": "#F1F2F3"
        },
        "interface": { //not valid
            "foreground": "#B48C8C"
        } 
    }
Run Code Online (Sandbox Code Playgroud)

如何获得VSCode颜色自定义以识别c#特定语法?

Mar*_*ark 11

editor.tokenColorCustomizations可以使用许多值:注释,函数,关键字,数字,字符串,类型和变量.如果这些都不适合你textMateRules也可用.所以你可以这样做:

"editor.tokenColorCustomizations": {
    "textMateRules": [{
        "scope": "yourScopeHere",
        "settings": {
            "fontStyle": "italic",
            "foreground": "#C69650"
        }
    }]
   },
Run Code Online (Sandbox Code Playgroud)

所以你只需要弄清楚" 界面 " 需要什么范围.

为此,尝试CTRL- Shift- P并输入范围:选择

Developer: Inspect TM Scopes  
Run Code Online (Sandbox Code Playgroud)

并且对于选择的任何关键字,如界面,您将获得其textmate范围的列表.这应该作为上面的范围值插入.[根据我的经验,打开" Inspect TM Scopes "面板然后单击几个项目,然后单击一个,如所需的接口,就更准确了- 示波器面板将保持打开状态.]您可以从范围小组.

您可能只需要列出的主要范围,但如果需要缩小其范围,您可以在范围中包含逗号分隔列表中列出的其他范围:...,...,...

  • 所以这种工作。如果我定义了一个接口,令牌被标识为`entity.name.type.interface.cs`但是如果我去另一个类的属性并查看它的变量类型,它只显示`storage.type.cs的令牌` 与所有其他变量类型相同。如果我实现一个接口,同样的事情,它只被称为 storage.type.cs。但是,您让我走上了正确的道路,我正在通过实际的 json 文件对主题进行更多自定义。 (3认同)