brackethighlighter 的 level_1–level_6 是手动映射括号嵌套层级与样式作用域的配置项,需在用户设置和主题文件中同步定义 brackethighlighter.level.1 至 level.6 作用域并确保语法作用域匹配,否则括号无法实现彩虹效果。

Sublime 本身不支持彩虹括号,BracketHighlighter 插件只是“识别+标记”,颜色全靠主题文件里的 brackethighlighter.level.1 到 level.6 这些作用域定义——没配色,就永远是同一灰;配了但层级没映射对,照样单色。
BracketHighlighter 用户配置里 level_1–level_6 是干啥的?
它们不是自动按嵌套深度分配颜色的“开关”,而是告诉插件:“第 1 层括号用 level_1 样式,第 2 层用 level_2……”——但前提是插件得能算出哪层是 level_1。这个计算依赖两个条件:high_visibility_enabled_by_default 必须为 true,且当前语法作用域(如 source.js)被插件识别为支持嵌套高亮。
-
"bracket_styles"中必须显式写全level_1到level_6,漏一个就会 fallback 到default,导致该层变回默认灰 - 缩进必须用空格,不能用 Tab,否则 Sublime 直接忽略整个配置块
- 保存后要关闭再重开文件才生效,重启 Sublime 有时也不管用
主题里缺 brackethighlighter.level.* 作用域?别硬改 .tmTheme
直接编辑主题文件风险高,容易破坏其他语法高亮。更稳妥的做法是用 PackageResourceViewer 提取当前主题,再在 Packages/User/ 下新建同名文件覆盖。搜索 brackethighlighter.level.1,如果没找到,就手动补上:
{
"brackethighlighter.level.1": {"foreground": "#FF5252"},
"brackethighlighter.level.2": {"foreground": "#AB9DF2"},
"brackethighlighter.level.3": {"foreground": "#8DE3B4"},
"brackethighlighter.level.4": {"foreground": "#FFA726"},
"brackethighlighter.level.5": {"foreground": "#BA68C8"},
"brackethighlighter.level.6": {"foreground": "#29B6F6"}
}
注意:这些 key 必须和 bracket_styles 里 "color": "brackethighlighter.level.1" 完全一致,大小写、下划线都不能错。
JSON、Vue、TS 文件括号不彩虹?语言作用域没对上
BracketHighlighter 默认只监听 source.js、source.python 等通用作用域。而 .json 文件的作用域是 source.json,.vue 单文件组件里 <script></script> 块可能是 source.js.vue,<template></template> 是 text.html.vue ——这些都没被默认规则覆盖。
- 打开命令面板
Ctrl+Shift+P→ 输入Developer: Show Scope Name,光标停在括号上,看状态栏显示的实际作用域名 - 在
Bracket Settings – User里加"scope_exclude": []并清空,或显式加"scope_include": ["source.json", "source.js.vue", "text.html.vue"] - Vue 的
<template></template>里 HTML 标签括号想彩虹?得额外配angle类型样式,且确保match_brackets_angle仍为false(否则 JS 里<div> 会误触发) <p>真正卡住人的从来不是装插件,而是主题没配色、作用域没覆盖、配置缩进错了——三者齐备,才能让括号颜色随嵌套深度自然流转。少一个环节,就还是灰蒙蒙一片。</p> </div>











