是,Todo Tree 默认不识别@todo或小写todo,需手动配置todo-tree.regex.regex正则,添加(?i)忽略大小写并转义/*,否则插件静默失效。

Todo Tree 默认不显示 @todo 或小写 todo?改正则就对了
Todo Tree 插件默认只匹配大写的 TODO、FIXME、BUG,且严格区分大小写和前置字符——写成 // todo、// @todo 或 /* TODO: */ 都不会被识别。这不是 bug,是设计如此。
实操建议:
- 打开
settings.json(Ctrl+, → 右上角“打开设置 (JSON)”) - 添加或修改
"todo-tree.regex.regex",推荐用这个:"(//|#|/\*|^)\s*(?i)(todo|fixme|bug|@todo|@fixme|xxx)" -
/\*中的反斜杠必须双写,否则正则解析失败,插件直接停摆 -
(?i)开启忽略大小写,避免漏掉// todo和// TODO两种写法 - 如果项目含
.vue或.tsx文件,还要检查todo-tree.general.tags是否包含"vue"和"typescriptreact"
为什么扫描巨量文件时卡顿?excludeGlobs 压根不生效
todo-tree.filtering.excludeGlobs 只控制“结果是否显示”,不阻止插件打开并读取每个匹配文件——这意味着 node_modules 里几万个 .js 文件仍会被逐个加载、正则扫描,CPU 瞬间拉满。
实操建议:
- 放弃
excludeGlobs,改用todo-tree.filtering.includeGlobs反向指定范围,例如:["src/**/*", "tests/**/*", "packages/**/*"] - 配合 VSCode 原生配置,从底层禁用监听:
"files.watcherExclude": {"**/node_modules/**": true, "**/dist/**": true} - 关掉自动刷新:
"todo-tree.tree.autoRefresh": false,需要时手动按 Ctrl+Shift+P →Todo Tree: Refresh
点击 Todo Tree 条目跳转失败?路径错位是主因
提示 "Unable to open 'xxx': File not found",常见于符号链接(symlink)、WSL 路径映射、Git 子模块嵌套结构——Todo Tree 解析出的是工作区相对路径,但实际文件物理位置被软链到别处,VSCode 找不到。
实操建议:
- 确认当前工作区根目录是否为真实物理路径(右键资源管理器 → “在终端中打开”,看 pwd 输出)
- 如果是 WSL,确保 VSCode 是通过
code .启动,而非 Windows 版直接打开 WSL 路径 - 子模块项目:尝试把子模块单独打开为独立文件夹(File → Open Folder),再启用 Todo Tree 的
Folder作用域(侧边栏三点菜单 → Change Scope → Folder) - 不要选
File模式——它只显示当前编辑器标签页内容,基本没用
多人协作下待办项不一致?别当它是任务追踪系统
Todo Tree 是纯本地扫描工具,不读 Git 状态、不跨分支同步、不合并重复标记。A 在 feature 分支写了 // TODO,B 切到 main 就彻底看不见;同一行两个 // TODO 会被合并成一条,删一个,整行都消失。
实操建议:
- 把它当代码里的便利贴,不是 Jira 替代品
- 需要协作追踪,加唯一 ID:
// TODO(#123): 实现登录埋点,再配正则提取 ID 用于导出或搜索 - 提交前运行
Todo Tree: Export to...生成快照,留档比依赖实时扫描更可靠
最易被忽略的一点:正则里漏转义 /* 或写错括号层级,会导致整个插件静默失效——没有报错,也不显示任何条目,排查时容易绕远路。


















