在 VS Code 中试试

颜色主题

Visual Studio Code 用户界面中可见的颜色分为两类

  • 工作台颜色用于从活动栏到状态栏的视图和编辑器中。所有这些颜色的完整列表可在主题颜色参考中找到。
  • 语法颜色和样式用于编辑器中的源代码。这些颜色的主题化方式不同,因为语法着色基于 TextMate 语法和 TextMate 主题以及语义标记。

本指南将介绍创建主题的不同方式。

工作台颜色

创建新的工作台颜色主题最简单的方法是从现有颜色主题开始进行自定义。首先切换到要修改的颜色主题,然后打开设置并修改workbench.colorCustomizations设置。更改会实时应用到你的 VS Code 实例。

例如,以下内容会更改标题栏的背景颜色

{
  "workbench.colorCustomizations": {
    "titleBar.activeBackground": "#ff0000"
  }
}

所有可主题化的颜色的完整列表可在颜色参考中找到。

语法颜色

对于语法高亮颜色,有两种方法。你可以引用社区中现有的 TextMate 主题(.tmTheme 文件),或者创建自己的主题规则。最简单的方法是从现有主题开始进行自定义,就像上面工作台颜色部分所述一样。

首先切换到要自定义的颜色主题,然后使用editor.tokenColorCustomizations设置。更改会实时应用到你的 VS Code 实例,无需刷新或重新加载。

例如,以下内容会更改编辑器中注释的颜色

{
  "editor.tokenColorCustomizations": {
    "comments": "#FF0000"
  }
}

该设置支持一个简单的模型,其中包含一组常见的标记类型,例如“comments”、“strings”和“numbers”。如果想为更多内容着色,需要直接使用 TextMate 主题规则,这在语法高亮指南中详细解释。

语义颜色

语义高亮功能在 VS Code 1.43 版中适用于 TypeScript 和 JavaScript。我们预计其他语言很快也将采用该功能。

语义高亮根据语言服务的符号信息丰富了语法着色,语言服务对项目有更完整的理解。着色更改会在语言服务器运行并计算出语义标记后出现。

每个主题通过主题定义中的特定设置控制是否启用语义高亮。每个语义标记的样式由主题的样式规则定义。

用户可以使用editor.tokenColorCustomizations设置覆盖语义高亮功能和着色规则

为特定主题启用语义高亮

"editor.tokenColorCustomizations": {
    "[Material Theme]": {
        "semanticHighlighting": true
    }
},

主题可以定义语义标记的主题化规则,如语法高亮指南中所述。

创建新的颜色主题

使用workbench.colorCustomizationseditor.tokenColorCustomizations调整完主题颜色后,就可以创建实际主题了。

  1. 命令面板中使用开发者:从当前设置生成颜色主题命令生成主题文件

  2. 使用 VS Code 的Yeoman 扩展生成器生成新的主题扩展

    npm install -g yo generator-code
    yo code
    
  3. 如果你按照上述方法自定义了主题,请选择“从头开始”(Start fresh)。

    yo code theme

  4. 将通过设置生成的主题文件复制到新的扩展中。

你还可以通过告诉扩展生成器导入 TextMate 主题文件 (.tmTheme) 并将其打包用于 VS Code 来使用现有的 TextMate 主题。或者,如果你已经下载了该主题,则将tokenColors部分替换为要使用的.tmTheme文件的链接。

{
  "type": "dark",
  "colors": {
    "editor.background": "#1e1e1e",
    "editor.foreground": "#d4d4d4",
    "editorIndentGuide.background": "#404040",
    "editorRuler.foreground": "#333333",
    "activityBarBadge.background": "#007acc",
    "sideBarTitle.foreground": "#bbbbbb"
  },
  "tokenColors": "./Diner.tmTheme"
}

提示: 为你的颜色定义文件添加-color-theme.json后缀,这样在编辑时将获得悬停提示、代码完成、颜色装饰器和颜色选择器。

提示: ColorSublime 有数百个现有的 TextMate 主题可供选择。选择你喜欢的主题,复制下载链接以在 Yeoman 生成器或扩展中使用。链接格式将类似于"https://raw.githubusercontent.com/Colorsublime/Colorsublime-Themes/master/themes/(name).tmTheme"

测试新的颜色主题

要试用新主题,请按 F5 启动扩展开发宿主窗口。

在该窗口中,通过文件 > 首选项 > 主题 > 颜色主题 打开颜色主题选择器,你可以在下拉列表中看到你的主题。向上和向下箭头可以看到你的主题的实时预览。

select my theme

对主题文件的更改会实时应用到Extension Development Host窗口。

将主题发布到扩展市场

如果你想与社区分享你的新主题,可以将其发布到扩展市场。使用vsce 发布工具打包你的主题并将其发布到 VS Code Marketplace。

提示: 为了方便用户找到你的主题,请在扩展描述中包含“theme”一词,并在package.json中将Category设置为Themes

我们还提供了关于如何让你的扩展在 VS Code Marketplace 上看起来更棒的建议,请参阅Marketplace 展示技巧

添加新的颜色 ID

颜色 ID 也可以通过颜色贡献点由扩展贡献。在使用workbench.colorCustomizations设置和颜色主题定义文件进行代码完成时,这些颜色也会出现。用户可以在扩展贡献选项卡中查看扩展定义的颜色。

进一步阅读