Bracket Pair Colorizer 会导致括号变灰或消失,因其禁用 VS Code 1.80+ 原生括号高亮并劫持配置项,干扰渲染坐标;需卸载插件、重载窗口,并设置 "editor.bracketPairColorization.useThemeColor": false。

Bracket Pair Colorizer 为什么会让括号颜色变灰或消失
VS Code 1.80+ 已原生支持括号配对高亮,Bracket Pair Colorizer(含 v1/v2)会强制禁用内置功能,并劫持 editor.bracketPairColorization.enabled 的控制权。一旦启用,它不仅覆盖颜色逻辑,还会干扰 editor.guides.bracketPairs 的渲染坐标——导致换行后引导线断裂、嵌套层级错色、甚至括号全变灰色(但辅助线还在)。这不是主题问题,是插件主动“退订”了 VS Code 的 token 高亮管道。
- 禁用或卸载
Bracket Pair Colorizer和Bracket Pair Colorizer 2是必须的第一步 - 卸载后务必执行
Developer: Reload Window,仅禁用不 reload 不生效 - 检查
Output面板 →Extension Host日志,若出现overriding existing theme rule或Failed to register token provider,基本可锁定为该插件残留影响
editor.bracketPairColorization.useThemeColor 设为 false 才能显色
即使启用了原生括号着色,很多主题(如 Monokai、Dracula、Catppuccin)默认把括号颜色绑定到主题色值上,而这些色值往往未定义或设为透明/灰色。结果就是:开关开着,颜色却没出来。
- 在
settings.json中添加:"editor.bracketPairColorization.useThemeColor": false - 这个设置强制使用 VS Code 内置的彩色池(red/orange/yellow/blue/purple),绕过主题对
editorBracketMatch.background等 token 的空定义 - 搭配
"editor.bracketPairColorization.independentColorPoolPerBracketType": true可确保{}、[]、()各自独立循环配色,避免嵌套混淆
workbench.colorCustomizations 是括号颜色失效的隐形推手
哪怕你只写了 "workbench.colorCustomizations": {},VS Code 就会停止注入默认的括号引导线和匹配背景色。这不是 bug,是设计行为:空对象也被视为「用户已接管 UI 颜色控制」,于是所有 editor 相关的 color customizations(包括括号 guide、match border)全部被跳过。
- 打开命令面板 → 运行
Preferences: Open Settings (JSON) - 搜索
workbench.colorCustomizations,整段(含键名)临时注释或删除 - 保存后按
Ctrl+K Ctrl+T切回当前主题,立刻验证括号是否恢复着色 - 如需微调,应优先用主题自身支持的配置项(如
catppuccin.colorScheme),而非硬写workbench.colorCustomizations
语言模式错位导致括号解析失败
括号高亮依赖语言服务返回的语法树位置,而不是纯文本正则匹配。如果右下角显示 Vue,但实际被 Vetur 和 Volar 同时接管,或文件被 files.associations 错配成 plaintext,那么括号结构根本不会被解析——自然没有颜色、没有引导线、也没有匹配反馈。
- 点击右下角语言标识,确认是
Vue(非Vue HTML或Plain Text),并勾选Configure vue language based settings - 检查
settings.json中是否有类似"files.associations": { "*.vue": "plaintext" }的误配 - 执行
Developer: Inspect Editor Tokens and Scopes,把光标停在{上,看 scope 是否为punctuation.section.embedded.block.vue类型;若显示source.plaintext,说明语言识别彻底失败
false 值、一行空 JSON、甚至状态栏里一个看似正确的语言名,都可能让整个高亮链路中途断开。动手前先关插件、清配置、验 scope,比反复调颜色更省时间。


















