如何查找 VS Code 中 UI 元素对应的 scope?
可以用开发者工具检查 VS Code 的 UI 元素,查找它使用的主题颜色标识符(Color ID),例如 editorGutter.modifiedBackground。Developer: Inspect Editor Tokens and Scopes 主要用于检查代码文本的语法和语义高亮,不能用来检查整个窗口的 UI。
如果你说的“Changed Lines”是代码左侧表示源代码管理改动的色条,对应的颜色键是 editorGutter.modifiedBackground。官方颜色参考
先区分 scope 和 UI 颜色标识符
制作主题时,代码高亮和 UI 配色使用不同的配置:
| 要修改的内容 | 使用的配置 |
|---|---|
| 注释、字符串等代码文本的语法高亮 | tokenColors 中的 TextMate scope |
| 代码文本的语义高亮 | semanticTokenColors |
| 侧边栏、状态栏、编辑器改动标记等界面颜色 | colors 中的 Color ID |
编辑器内的元素也不一定属于 Token。例如,行号和改动标记都有各自的 UI 颜色配置。官方主题开发指南
用开发者工具定位 UI 元素
在桌面版 VS Code 中,执行 Developer: Toggle Developer Tools 可以打开用于检查界面的开发者工具。官方调试说明
- 打开命令面板,执行
Developer: Toggle Developer Tools。 - 在开发者工具中切换到 Elements 面板。
- 点击左上角的元素选择按钮,再点击 VS Code 中要检查的元素。
- 查看 Styles 中控制颜色的规则,重点检查
color、background-color、border-color,以及::before、::after伪元素。 - 如果规则使用了以
--vscode-开头的 CSS 变量,就可以据此查找对应的 Color ID。
例如,规则中引用的变量是:
var(--vscode-editorGutter-modifiedBackground)
对应的主题颜色键就是:
editorGutter.modifiedBackground
这类变量名以 --vscode- 开头,并将 Color ID 中的 . 替换为 -。找到候选颜色键后,再通过颜色参考或 JSON 自动补全确认用途。DOM 的 class 名不能直接当作主题配置键。官方 CSS 变量命名说明
修改 Changed Lines 的颜色
编辑器左侧的源代码管理改动标记常用以下颜色键:
| 标记 | Color ID |
|---|---|
| 已修改行 | editorGutter.modifiedBackground |
| 新增行 | editorGutter.addedBackground |
| 删除位置 | editorGutter.deletedBackground |
这些名称及用途可以在 Theme Color Reference 中查到。
在自己的主题 JSON 文件中,将它们写入顶层 colors 对象:
{
"name": "My Theme",
"type": "dark",
"colors": {
"editorGutter.modifiedBackground": "#E5C07B",
"editorGutter.addedBackground": "#98C379",
"editorGutter.deletedBackground": "#E06C75"
},
"tokenColors": []
}
如果想先确认颜色键是否选对,可以在用户 settings.json 中添加:
{
"workbench.colorCustomizations": {
"editorGutter.modifiedBackground": "#FF00FF"
}
}
保存后,这项颜色覆盖会直接应用到当前主题。确认目标色条发生变化后,再将颜色写入主题文件的 colors。官方配色自定义说明
查看可配置颜色的完整列表
查找 UI 配色时,可以使用以下两种方式:
- 打开 Theme Color Reference,按界面区域查找,例如
editorGutter、sideBar、statusBar。 - 在
settings.json的workbench.colorCustomizations对象内触发 IntelliSense,查看颜色键及说明。官方主题设置文档
主题文件建议使用 -color-theme.json 后缀,例如 my-color-theme.json,以获得主题配置的自动补全和悬停提示。扩展注册的额外 Color ID 也会出现在相应的补全列表中。官方主题文件说明
注意检查目标所在的位置
开发者工具可以帮助定位界面元素,但并非每个元素都有独立、可配置的 Color ID。有些元素共享颜色,有些颜色由代码计算,遇到这些情况需要继续查阅颜色参考或相关实现。
左侧 gutter 的改动色条、右侧概览标尺中的标记,以及 diff 编辑器内的文本背景,使用不同位置的配色配置。上面的 editorGutter.* 示例针对左侧改动标记。如果修改颜色后目标没有变化,应先确认选中的区域是否正确。
在开发者工具中直接修改 CSS 只适合临时验证。需要保存并随主题分发的颜色,应写入主题 JSON 的 colors。
备注:内容仅供参考。
