奇怪的 C# (Unity) 语法着色

Weird C# (Unity) syntax coloring

我想通过语法高亮实现两件事

第一(非常重要):一种颜色的字段,其他颜色的参数

第二个(不是很重要):不同颜色的字段

我确实意识到第二个需求可能无法在 VSCode 中实现,但我很确定第一个应该是默认的,但在我的情况下它的行为非常奇怪:

您可以看到一些东西 - 不仅参数和字段的用法是相同的颜色,而且字段声明与其用法的颜色完全不同,到处都是。您可以看到,如果变量的名称与其 class 名称相匹配,它与 class 具有相同的颜色,这很荒谬(因为它现在看起来像一个静态的 class)。

有什么方法可以让字段的声明及其用法用一种颜色显示,而参数用其他颜色显示吗?

我应该提一下,语义突出显示似乎不起作用 - 没有任何变化,无论我将其打开 true 还是 false,重新启动 window 或 vscode,都没有)。 =11=]

我找到了一个带有语义标记颜色自定义的修复程序,现在(受 Rider 启发)代码看起来像这样:

我在 settings.json 中使用具有这些规则的高对比度主题(我相信这是内置的):

"editor.semanticTokenColorCustomizations": {
    "enabled": true,
    "rules": {
        "parameter": {
            "foreground": "#FFFFFF",
            "fontStyle": "italic",
        },
        "class": {
            "foreground": "#C191FF",
            "fontStyle": "underline",
        },
        "class.static": {
            "fontStyle": "bold underline",
        },
        "field": "#66C3CC",
        "property": "#66C3CC",
        "plainKeyword": "#6C95EB",
        "number": "#ED94C0",
        "method": "#33CC8F",
        "local": "#FFFFFF",
        "controlKeyword": "#6C95EB"
    }
}

感谢来自 this post 的 Npras。老实说,我花了一段时间才找到 post,所以我希望将来像我一样连特征名称都找不到的人至少能找到我的 [=24] =].

有两件事值得一提 - 我不认为我的第二个需求目前可以通过语义标记来实现,而且我了解到大多数主题颜色属性和字段不同,我个人不喜欢。