Todo Tree更可靠,因其扫描快、不卡大项目、支持点击跳转、默认识别TODO/FIXME/NOTE且自定义标签最省心;而VSCode原生搜索不常驻、不能分类折叠,TODO Highlight仅行内高亮且配置易错,Todo+配置分散难上手。

直接装 Todo Tree,别选 TODO Highlight 或 Todo+ —— 它扫描快、不卡大项目、支持点击跳转、默认就认 TODO/FIXME/NOTE,且自定义标签最省心。
为什么 Todo Tree 比其他插件更可靠
VSCode 原生搜索(Ctrl+Shift+F)能查出 TODO,但不会常驻、不能分类、不带图标、也不自动跳转。TODO Highlight 插件只做行内高亮,侧边栏列表得靠额外命令(TODO: List),而且它的 todo.highlight.keywords 配置容易写错格式,比如把对象写成数组导致整个高亮失效。Todo+ 功能强但配置项分散(todo.tags、todo.archiveOnComplete 等),小项目用起来反而绕。
Todo Tree 从安装到可用,基本不用改设置;它默认启用实时扫描,保存文件后侧边栏立刻刷新;右键条目就能“Reveal in File”或标记完成;树状结构天然支持按文件折叠,100 个 TODO 散在 20 个文件里也能一眼看清分布。
装完就用:三步确认插件真生效
安装后别急着配 JSON —— 先验证基础功能是否跑通:
- 打开一个含
// TODO: 加个防抖的.ts文件,看该行是否出现浅蓝底色高亮 - 按
Ctrl+Shift+P输入Todo Tree: Toggle Tree,确认侧边栏弹出树形列表,且该项出现在对应文件节点下 - 双击侧边栏里的那条
TODO,编辑器是否自动跳转到那一行并聚焦
如果任一环节失败,大概率是插件没正确加载,或当前文件类型被意外排除(比如你开了 .vue 文件但没在 todo-tree.languages 里加 "vue")。
加自定义标签(如 REVIEW / BUG)的正确写法
很多人在 settings.json 里改 todo-tree.customHighlight,结果新加的 REVIEW 不显示图标或颜色不对 —— 根本原因是字段名写错了,或者结构嵌套错误。
必须用这个格式:
{
"todo-tree.customHighlight": {
"REVIEW": {
"icon": "eye",
"color": "#FFA500",
"foreground": "#000000"
},
"BUG": {
"icon": "bug",
"color": "#FF3B30",
"foreground": "#FFFFFF"
}
}
}注意:customHighlight 是对象,不是数组;每个 key 是纯字符串(不要带 // 或空格);icon 必须是 VSCode 支持的 codicon 名称(eye、bug、zap 等)。
加完保存,再在代码里写 // REVIEW: 参数校验逻辑待确认,立刻生效。
大项目必配的性能保护项
在 10 万行以上的项目里,Todo Tree 默认会扫整个工作区,包括 node_modules 和 dist,首次加载可能卡顿 3–5 秒,后续保存也变慢。
必须加这两项排除:
-
todo-tree.excludeGlobs设为["**/node_modules/**", "**/dist/**", "**/build/**", "**/.git/**"] -
todo-tree.includeGlobs显式限定范围,例如["**/*.ts", "**/*.js", "**/*.py", "**/*.go"](按你实际语言选)
别信“默认只扫源码”的说法 —— 它默认扫所有文件,除非你明确告诉它哪些不要扫。漏掉 excludeGlobs,项目一开,CPU 就拉满。
真正麻烦的不是加标签,而是团队里有人用 // TODO:,有人写 /* FIXME */,还有人塞进 Markdown 里当 checklist。Todo Tree 能统一收口,但前提是所有人遵守同一套正则和路径规则 —— 这件事没法靠插件自动解决,得写进 .vscode/settings.json 提交到仓库,并在 PR 模板里加一句“请检查 TODO 标记是否符合规范”。


















