– 代理会话日,2月19日

颜色主题

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. 如果您自定义了一个主题如上所述,请选择“从头开始”。

    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

主题文件的更改将实时应用在 扩展开发主机 窗口中。

将主题发布到扩展市场

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

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

我们还提供有关如何使您的扩展在 VS Code 市场上看起来很棒的建议,请参阅 市场展示技巧

添加新的颜色 ID

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

进一步阅读

© . This site is unofficial and not affiliated with Microsoft.