VS Code:如何像Eclipse一样设置语义语法颜色。默认语法着色不会执行此操作

时间:2018-06-22 19:14:47

标签: eclipse syntax visual-studio-code

在C / C ++中,您可以在Eclipse编辑器中设置更多语言级别的颜色: 例如,函数参数,局部变量可以具有不同的颜色。 可以更改静态和全局可变颜色。可以配置宏和宏引用。

如何在Visual Studio Code中执行此操作?我不确定文本伴侣tmLanguage是否可以实现此目的。我找不到与此有关的任何文档。

3 个答案:

答案 0 :(得分:3)

[请参见下面的v1.45更改]


您不仅限于主题提供的语义标记突出显示。您可以执行以下操作,自己为支持的语言语义标记选择颜色和字体样式:

还可以在用户中定义语义主题规则 设置:

"editor.tokenColorCustomizationsExperimental": {
    "property.readonly": {
        "foreground": "#35166d"
    },
    "*.defaultLibrary": {
        "fontStyle": "underline"
    }
}

来自https://github.com/microsoft/vscode/wiki/Semantic-Highlighting-Overview#as-a-theme-author-do-i-need-to-change-my-theme-to-make-it-work-with-semantic-highlighting

尤其要注意https://github.com/microsoft/vscode/wiki/Semantic-Highlighting-Overview#how-can-i-find-out-what-semantic-tokens-are-available-and-how-they-are-themed中有关如何发现语义标记的信息。例如:

enter image description here

如果未列出semantic token type,则该语言服务尚不支持它们。但是无疑,当他们这样做时,您将想要修改他们的一些颜色和字体样式选择。


vscode 1.45 editor.tokenColorCustomizationsExperimental重命名为editor.semanticTokenColorCustomizations

请参见https://github.com/microsoft/vscode/issues/96267

此语法在2020年4月的Insiders's Build中对我有用:

"editor.semanticTokenColorCustomizations": {
    "enabled": true,
    "rules": {
        "enumMember": "#ff0000"
    },
    "[Default Dark+]": {
        "enabled": true,
        "rules": {
            "variable.readonly": "#ff00ff"
        },
    }
},

来自https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_45.md#semantic-token-styling-in-the-user-settings

TypeScript和JavaScript可以使用语义着色, 支持Java,C ++。默认情况下启用 内置主题并被主题扩展所采用。

editor.semanticTokenColorCustomizations允许用户否决 主题设置并自定义主题。

向所有主题添加语义样式的示例:```

"editor.semanticTokenColorCustomizations": {
    "enabled": true,
    "rules": {
        "property.readonly": {
          "foreground": "#35166d"
        },
        "*.defaultLibrary": {
            "bold": true
        }
    }
}


以上设置为所有#35166d常量和所有 默认库中出现的符号(例如MathsetTimeout)加粗。


向Dark +主题添加语义样式的示例:```

"editor.semanticTokenColorCustomizations": {
    "[Default Dark+]": {
        "enabled": true,
        "rules": {
            "parameter": { "underline": true },
            "*.declaration": { "bold": true }
        }
    }
}

The setting above underlines all parameters in the Dark + theme and
makes all symbol declarations bold.

Theming for semantic tokens is explained in more details in the
[Semantic Highlighting
Guide](/api/language-extensions/semantic-highlight-guide#theming).

奇怪的是,即使在以上enabled: true中的"editor.semanticTokenColorCustomizations"进行测试时,您仍然需要启用此设置:

    "editor.semanticHighlighting.enabled": true

但这是默认设置。

答案 1 :(得分:1)

您可以了解有关scopes and syntax highlighting colors here的更多信息。

这是去年Microsoft/vscode issue 27894记录/要求的,由PR 29393实施。
请参见VSCode 1.15中的“ User definable syntax highlighting colors”,修改color theme

答案 2 :(得分:0)

在撰写本文时,VSCode内部版本支持语义突出显示API。

有关一个非常简单的示例,请参见semantic tokens sample