vs code 1.85+ 已内置稳定括号匹配与着色功能,无需安装 bracket-pair-colorizer-2;该插件已归档且与新版不兼容,易引发颜色错乱、光标跳动及“cannot read property 'document' of undefined”等错误。

VS Code 1.85+ 版本已内置稳定可靠的括号匹配与着色功能,不需要安装任何第三方括号插件;强行安装 bracket-pair-colorizer-2 反而会引发颜色错乱、光标跳动、Cannot read property 'document' of undefined 等错误。
为什么现在不该装 bracket-pair-colorizer-2
该插件作者已于 2025 年底归档仓库,不再适配 VSCode 新版渲染机制(尤其是 1.70+ 后移除的旧 TextMate 注入 API)。你遇到的“括号不着色”“只高亮一半”“点一下括号就消失”,大概率是它和原生 editor.bracketPairColorization.enabled 功能在抢夺同一段语法标记导致的冲突。
-
bracket-pair-colorizer-2无法识别语言服务提供的语义括号(如 JSX 中的{}或 Vue script 区域),仅做纯文本扫描,易误匹配字符串内的括号 - 插件启用后若报错
Cannot read property 'document' of undefined,基本可锁定为权限被禁用 + 插件未降级适配 - VSCode 官方从 1.68 开始提供原生括号配对高亮,1.85 起全面优化兼容性与性能
怎么正确开启原生括号匹配与着色
直接改设置,不装插件,不重启(部分设置热生效):
- 打开设置(
Ctrl+,),搜索bracketpaircolorization,勾选Editor > Bracket Pair Colorization: Enabled - 再搜
matchbrackets,把Editor > Match Brackets设为always(不是true,填布尔值会失效) - 如需光标悬停时显示配对连线,开启
Editor > Guides > Highlight Active Bracket Pair - 检查当前文件右下角语言模式是否正确(如
.vue文件应为vue而非plaintext;否则括号不解析)
括号着色失效的常见真实原因
不是插件没装对,而是环境链路断了:
- language mode 错误:
.env、自定义模板或无后缀文件被识别为plaintext,原生功能直接跳过括号分析 - 主题覆盖颜色:Monokai 等主题可能重置了
editorBracketHighlight.foreground3等 token 颜色,换回Default Dark+即可验证 - workspace 设置覆盖:项目级
.vscode/settings.json里写了"editor.bracketPairColorization.enabled": false,优先级高于用户设置 - 语言扩展未就绪:Vue 文件需
Volar,Astro 需Astro VSCode,否则 script 区域括号不参与语义匹配
真需要“荧光连线”或深度定制才考虑插件
如果你明确要点击括号弹出连接线、或必须给 <tag></tag> 也上色,那 bracket-pair-colorizer-2 是唯一选择——但必须满足两个前提:
- 关掉原生的
editor.bracketPairColorization.enabled,只留插件接管 - 确认插件配置中
bracketPairColorizer.colorizedBracketPairs已正确定义中文括号对,例如[["【","】"], ["「","」"]],且每对必须是两个独立字符串,顺序不能反
中文括号高亮后仍不明显?重点检查语言模式和主题——写在 Markdown 文件里?VSCode 默认把 .md 当作 markdown 语言模式,而该模式不启用括号配对解析;写在 JS/TS 字符串中?比如 const s = "【开头】";,此时括号属于字符串字面量,原生和插件都**不会处理**(这是正确行为,避免误匹配)。











