现已推出!阅读 10 月份的新功能和修复。

增强着色

Visual Studio Code C/C++ 扩展现在支持语义着色,在启用 IntelliSense 时。增强着色的使用由 C_Cpp.enhancedColorization 设置控制。此设置默认情况下已启用。

"C_Cpp.enhancedColorization": "enabled"

主题

可以使用 VS Code 中现有的主题和颜色自定义支持来关联颜色。有关更多信息,请参阅 VS Code 主题文档

颜色与 语义标记 以及 TextMate 范围 相关联。

C/C++ 主题扩展

我们创建了一组 VS Code 主题,它们与 Visual Studio 中的默认浅色和深色主题非常相似,并且包括语义标记的颜色。这些主题可以在 这里 找到。

IntelliSense 标记和范围

标记 语义标记名称 回退 TextMate 范围
类模板 templateType entity.name.type.class.templated
枚举器 enumMember variable.other.enummember
事件 (C++/CLI) event variable.other.event
函数 function entity.name.function
函数模板 templateFunction entity.name.function.templated
泛型类型 (C++/CLI) genericType entity.name.type.class.generic
全局变量 variable.global variable.other.global
标签 label entity.name.label
局部变量 variable.local variable.other.local
macro entity.name.function.preprocessor
成员字段 property variable.other.property
成员函数 method entity.name.function.member
命名空间 namespace entity.name.namespace
新建/删除 newOperator keyword.operator.new
运算符重载函数 operatorOverload entity.name.function.operator
运算符重载成员 memberOperatorOverload entity.name.function.operator.member
参数 parameter variable.parameter
属性 (C++/CLI) cliProperty variable.other.property.cli
引用类型 (C++/CLI) referenceType entity.name.type.class.reference
静态成员字段 property.static variable.other.property.static
静态成员函数 method.static entity.name.function.member.static
类型 type entity.name.type
用户定义的文字 - 数字 numberLiteral entity.name.operator.custom-literal.number
用户定义的文字 - 原始 customLiteral entity.name.operator.custom-literal
用户定义的文字 - 字符串 stringLiteral entity.name.operator.custom-literal.string
值类型 (C++/CLI) valueType entity.name.type.class.value

在设置中自定义颜色

颜色也可以在全局设置中覆盖

    "editor.semanticTokenColorCustomizations": {
        "rules": {
            "templateType": {
                "foreground": "#ff0000",
                "fontStyle": "italic bold underline"
            }
        }
    }

或者,在每个主题的基础上覆盖

    "editor.semanticTokenColorCustomizations": {
        "[Visual Studio Dark]": {
            "rules": {
                "templateType": {
                    "foreground": "#ff0000",
                    "fontStyle": "italic bold underline"
                }
            }
        }
    }