better comments 默认仅对特定前缀(如todo、fixme、!、?、*等)生效,且要求严格匹配大小写、格式及语言支持;// todo未变色需检查语言id是否支持、配置项是否拼写正确、主题是否覆盖颜色。

Better Comments 不会自动高亮所有注释,必须用特定前缀或显式配置才生效;默认只对 TODO、FIXME、NOTE、HACK、!、?、* 这些关键词起作用,小写如 todo 或带空格的 TO DO 都不匹配。
为什么 // TODO 没变色?检查这三件事
常见现象是安装完插件,写了 // TODO: 却仍是灰色——不是插件坏了,而是环境没对齐。
- 确认当前文件语言 ID 是否被支持:打开命令面板(
Cmd+Shift+P),运行Developer: Inspect Editor Tokens and Scopes,看右上角显示的languageId是不是javascript、python等主流语言;如果是plaintext或markdown,默认不启用高亮 - 检查
settings.json里是否误删了better-comments.tags配置,或拼错成betterComments.tags(少短横线) - 某些主题(尤其是自定义主题)会覆盖插件颜色,可临时切换为 VSCode 自带的
Default Dark+主题验证是否为样式冲突
自定义 tag 时最容易踩的坑
想加个 // REVIEW 标签却始终不着色?大概率栽在这几个细节上:
-
tag值必须全大写、纯字母,不能含空格、冒号或连字符:"REVIEW"✅,"review"❌,"REVIEW:"❌,"REVIEW-2026"❌ - 颜色值必须是合法十六进制格式:
"#FF8C00"✅,"ff8c00"❌(缺#),"rgb(255,140,0)"❌(不支持 rgb) - 如果同时配置了
backgroundColor,记得设为"transparent"或具体色值;设成null或留空会导致整个配置项失效 - 改完
settings.json后不用重启 VSCode,但必须重新打开当前文件,或执行Developer: Reload Window
在 Markdown 或 Shell 文件里启用高亮
默认情况下,markdown 和 shellscript 不在 Better Comments 的激活列表里,所以 README.md 里的 <!-- TODO --> 或 .sh 里的 # FIXME 不会变色。
- 打开
settings.json,添加或修改better-comments.highlightLanguageIds字段,明确列出需要支持的语言:
"better-comments.highlightLanguageIds": ["javascript", "python", "typescript", "markdown", "shellscript"]
<!-- TODO -->,不是 // TODO;Shell 脚本用 # FIXME,不是双斜杠.md 文件开启),可用语言专属设置:"[markdown]": { "better-comments.enable": true }
禁用干扰项:避免误高亮旧注释或日志
项目里存在大量历史注释(如 // DEBUG: xxx)或日志语句(如 console.log("// TODO")),容易被错误识别并染色,反而降低可读性。
- 用
better-comments.ignoreLanguageGrammars排除高风险语言,例如禁用对plaintext的处理:
"better-comments.ignoreLanguageGrammars": ["plaintext"]
const s = "// TODO";),说明插件未正确识别语法上下文——这是已知限制,目前无完美解法,建议避免在字符串中写带前缀的伪注释better-comments.enable 设为 false;适合代码审查时快速还原“干净视图”真正难的不是配出五颜六色的注释,而是让团队所有人写同一套前缀、删掉过期的 TODO、不在字符串里塞 // HACK。颜色只是放大器,放大的是习惯,不是魔法。











