默认仅高亮TODO、FIXME、NOTE、HACK、XXX及!、?、*;// BUG或// REVIEW为灰色因未配置,需在settings.json的better-comments.tags数组中添加全大写纯字母tag(如"BUG")、合法十六进制色值,并重载窗口生效。

默认安装后,Better Comments 只对 TODO、FIXME、NOTE、HACK、XXX 和单字符前缀 !、?、* 生效;其他词(比如 BUG、REVIEW)不会变色——不是插件坏了,是根本没被配置进识别列表。
为什么 // BUG 或 // REVIEW 仍是灰色
插件只认大写、纯字母、无空格无符号的 tag 字符串,小写或带标点一律不匹配:
-
BUG✅ 有效;bug❌ 不触发;BUG_FIX❌ 不触发;REVIEW:❌ 冒号导致失效 - 必须写在
settings.json的better-comments.tags数组里,拼错字段名(如betterComments.tags少短横线)就完全无效 - 改完保存后不用重启 VSCode,但要重载窗口(
Cmd+Shift+P→Developer: Reload Window)或重新打开文件才刷新渲染
怎么正确添加自定义标签(如 BUG、REVIEW)
打开 settings.json(Cmd+, → 打开设置(JSON)),在根对象内插入或修改 better-comments.tags 数组:
"better-comments.tags": [
{"tag":"BUG","color":"#ff0000","strikethrough": true},
{"tag":"REVIEW","color":"#FF8C00","strikethrough": false}
]注意:
- 颜色值必须是带
#的十六进制,ff8c00或rgb(255,140,0)都不合法 - 如果加了
backgroundColor,不能留空或设为null,得写"transparent"或具体色值 - 注释必须紧贴
//后无空格:// BUG✅,// BUG❌(中间有空格)
为什么 //! 或 //? 没变色
这类单字符前缀走的是独立规则,不进 tags 数组,也不看大小写,但格式极其敏感:
- 必须是
//!或//?,即双斜杠后**零空格**直接跟符号;// !、// ?全部失效 - 颜色由
better-comments.highlightSpecialCharacters控制,默认开启;关掉就彻底不生效 - 若用了
Prettier或ESLint,保存时可能自动插入空格,把//!拆成// !——建议在 Prettier 配置中禁用insertSpaceAfterOpeningAndBeforeClosingNonemptyParentheses类规则,或用 ESLint 的spaced-comment统一约束注释格式
为什么 .md、.sh 或 .vue 里注释没颜色
Better Comments 不靠后缀判断语言,而看右下角显示的 languageId(可用 Cmd+Shift+P → Developer: Inspect Editor Tokens and Scopes 查看)。默认只启用 javascript、typescript、python、go 等白名单语言:
-
markdown、shellscript、plaintext默认被排除;.vue中只有<script>块继承 JS/TS 模式能高亮,<template>块不支持 - 要在 Markdown 中启用,需在
settings.json添加:"better-comments.languageSupport": ["markdown","shellscript"] - Markdown 用的是 HTML 注释语法
<!-- TODO -->,不是// TODO;Shell 脚本用# FIXME,不是双斜杠
最常被忽略的一点:颜色可能被主题覆盖。某些第三方暗色主题会强制重写注释样式,导致 // FIXME 看起来和普通注释一样——先切回 Default Dark+ 主题验证,再决定是否调整插件配色或主题设置。


















