真高亮需让编辑器将TODO视为有语义的语法单元,Highlight插件通过scope="comment"和双转义正则\b(TODO|FIXME)\b实现不依赖主题的稳定着色。

直接用 Highlight 插件配正则,5 分钟内生效,不重启、不挑语言、不依赖项目结构。
为什么 Find All 不算“高亮”
按 Ctrl+F 输入 (TODO|FIXME) 并点 Find All,只是临时界面标记——关掉查找框就消失,不会随滚动保留,也不能被主题颜色接管。它不改变文本的 scope,只是 UI 层叠渲染。真高亮必须让编辑器把 TODO 当作一个有语义的语法单元(比如 keyword.other.todo),才能和配色方案联动。
Highlight 插件配置要点
装好 Highlight 后,在 Preferences → Package Settings → Highlight → Settings - User 里填入:
{
"highlights": [
{
"name": "todo_highlight",
"scope": "comment",
"regex": "\b(TODO|FIXME)\b",
"style": "fill",
"color": "hsl(48, 100%, 85%)"
}
]
}
关键细节:
-
scope必须设为comment,否则会误中字符串里的"TODO" -
regex中的要写成\b(JSON 字符串需双转义) -
style选fill比underline更易识别,尤其在深色主题下 - 不用加
^//s+这类行首限定——scope: comment已天然限定了上下文
TodoReview 扫得到但不显示颜色?不是插件问题
TodoReview 默认只生成 keyword.other.todos 这类 scope,但多数主题根本没定义它的颜色规则。你换用 Monokai 或 Ayucia 主题立刻有颜色,说明不是插件失效,而是当前主题没配。
更稳的做法是绕过主题适配环节:用 Highlight 直接覆盖样式,不依赖 scope 映射链路。如果非要用 TodoReview 驱动高亮,得确保用户设置里有:
{
"patterns": ["(?i)\b(TODO|FIXME)\b"]
}
注意:keywords 数组无效,patterns 才真正决定 scope 是否打上去。
最容易被忽略的是 scope 绑定精度——哪怕正则写对了,scope 设成 source 或漏写,高亮就会飘到字符串甚至变量名里。动手前先用 Ctrl+Shift+P → Developer: Show Scope Name 确认光标所在注释的真实 scope,再填进配置。

















