todoreview 没反应是因为未满足三项硬性条件:项目根目录缺少 .todoconfig 文件、未通过 file → open folder… 以项目方式打开、file_extensions 未显式添加 .vue/.ts 等后缀;跳转偏移源于 bom、tab/空格混用或注释格式不规范(如 //todo: 缺空格)。

TodoReview 默认不全局扫描,必须满足三个硬性条件才能搜到项目里所有 TODO:有 .todoconfig 文件、以 Project 方式打开文件夹、file_extensions 显式包含目标后缀。
为什么按 Ctrl+Shift+P 输入 TodoReview: Toggle 没反应?
不是插件没装好,而是它压根没启动扫描逻辑。TodoReview 是“项目感知型”插件,只在满足以下全部条件时才激活:
-
.todoconfig文件必须存在于你打开的项目根目录(空文件也行,但不能是.todoconfig.json或其他后缀) - Sublime 必须通过
File → Open Folder…打开整个目录,而不是双击单个.js文件或用Open File - 命令面板里输入的是
TodoReview: Show或TodoReview: Find TODOs in project,Toggle是旧版别名,部分版本已失效
为什么 .vue 和 .ts 里的 TODO 总是漏掉?
默认配置的 file_extensions 只含 ["*.py", "*.js", "*.html", "*.css"],.vue、.ts、.jsx 等全被过滤掉——它连文件都不读,更别说匹配了。
- 进
Preferences → Package Settings → TodoReview → Settings,在右侧用户设置中补全:{"file_extensions": ["*.js","*.ts","*.vue","*.jsx","*.html","*.py"]} - 注意写法:
vue或.vue无效,必须是*.vue;删掉原有项会导致 Python/HTML 也扫不到 - 如果项目含
node_modules,顺手加"folder_exclude_patterns": ["node_modules", "dist"],否则扫描卡顿
跳转时行号偏移、定位到错行怎么办?
这不是正则写错了,而是文本解析层面失准。TodoReview 依赖原始行号计算跳转位置,一旦文件存在以下任一情况,就会偏移:
- 文件带 BOM(尤其 Windows 下生成的
.ts),用File → Reopen with Encoding → UTF-8强制重载 - 混用 Tab 和空格缩进,统一执行
View → Indentation → Convert Indentation to Spaces - 注释格式不规范,比如
//TODO:(无空格)、// TODO:(前面多空格)、/* TODO */(斜杠紧贴),推荐标准写法:// TODO: xxx
想让 NOTE、BUG 也一起扫出来?
默认只认 TODO 和 FIXME,扩展靠改 patterns 正则,不是加 keywords 数组。
- 在用户设置中覆盖
patterns:{"patterns": ["(?i)\b(TODO|FIXME|NOTE|BUG|HACK|XXX)\b"]} -
(?i)开启忽略大小写,\b是单词边界,防止把TODO_LIST里的TODO单独抠出来 - 不要写成
"NOTE"单独一行——那只是旧版兼容字段,新版已弃用,只读patterns
真正麻烦的从来不是配置本身,而是团队里每个人的 Sublime 都得对齐缩进风格、编码格式和注释空格数;少一个环节,TODO 就可能变成“看不见的债务”。











