Todo Tree 是高效管理 TODO 的必备插件,它默认扫描 TODO/FIXME,支持侧边栏常驻、点击跳转、大项目不卡,需配置三项设置并自定义正则以识别 // REVIEW(username): 等复杂格式。

直接装 Todo Tree,别折腾原生搜索或 TODO Highlight —— 它默认就扫 TODO/FIXME,侧边栏常驻、点击跳转、大项目不卡,配置错一个字段就漏一半任务。
为什么原生 Ctrl+Shift+F 搜 TODO 不够用
它只是一次性搜索结果,关掉就丢;不支持按文件折叠、不能标记完成、不识别 REVIEW 或 BUG 这类自定义标签;更关键的是,// todo:(小写)或 // TODO(username): 这种带括号的写法,原生根本匹配不到。
常见错误现象:
- 搜出几十条结果,但点进去光标停在行尾而不是注释开头
- 改完代码保存后,搜索结果不自动刷新
-
vue或tsx文件里的// TODO:完全不被识别(默认语言列表没包含它们)
Todo Tree 必配的三项设置(不设等于白装)
插件安装后不会自动启用全部能力。以下三项必须手动加进 settings.json(用户级或工作区级均可):
-
"todo-tree.tree.showTags": true—— 关闭后侧边栏只显示文件名,看不到具体 TODO 行 -
"todo-tree.general.tags": ["TODO", "FIXME", "REVIEW", "BUG", "HACK"]—— 注意是数组,不是字符串;大小写敏感要靠下一项控制 -
"todo-tree.regex.regexCaseSensitive": false—— 否则// todo:和// TODO:只认一个
改完记得右键侧边栏空白处选 Todo Tree: Refresh,否则新配置不生效。
怎么让 // REVIEW(username): 也被识别并高亮
默认正则只匹配 // TODO: 这种简单格式,带括号的会被截断或忽略。必须替换正则表达式:
把 "todo-tree.regex.regex" 改成:
"todo-tree.regex.regex": "(//|#|<!--|;|/\*|^|^[ \t]*(-|\d+.))\s*(TODO|FIXME|REVIEW|BUG|HACK)(?::|\()"
说明:
-
(?::|\()表示后面跟冒号或左括号,覆盖REVIEW(username):和TODO:两种写法 - 如果还想要匹配
/* FIXME */这种块注释,得额外加\*/到结尾 - 改完正则后,
"todo-tree.general.tags"里仍要保留对应标签名,否则图标和颜色不生效
VSCode 内置快捷键和代码片段怎么配才不踩坑
手敲 // TODO: 容易拼错、漏空格、光标位置不对。推荐两种方式:
- 代码片段:在
javascript.json或全局typescript.json里加"TODO comment"片段,prefix设为todo,body用"// TODO: $1"——$1是光标初始位置,不是文字 - 快捷键:绑定
editor.action.insertSnippet命令,args传{"snippet":"// TODO: $1"};Windows/Linux 用ctrl+alt+t,macOS 改成cmd+alt+t
注意:keybindings.json 里不能写成 "command": "editor.action.insertSnippet", "args": "// TODO: $1" —— args 必须是对象,否则快捷键无效。
真正麻烦的不是插件装不上,而是正则写错导致部分文件不扫描、标签名大小写不一致漏匹配、或是语言支持没开(比如 "todo-tree.languages": ["vue", "typescript"] 没加,.vue 里就永远看不到 TODO)。这些细节不检查,再好的插件也只有一半效果。


















