TodoReview不响应是因为未满足三项硬性条件:项目根目录需存在名为.todoconfig的文件(非.json等后缀);必须通过File→Open Folder打开整个项目而非单文件;默认仅扫描.py/.js/.html/.css,.ts/.vue等需在Package Settings→TodoReview→Settings中手动添加到file_extensions列表。

Sublime 本身不内置 TODO 扫描功能,得靠 TodoReview 插件,但装完直接按 Ctrl+Shift+P 输入 TodoReview: Toggle 没反应——不是插件坏了,是它根本没启动,缺了三个硬性条件。
为什么 TodoReview 不扫描、不显示、没反应
它只在满足全部三项时才真正加载并扫描:
-
.todoconfig文件必须存在于你打开的项目根目录(空文件也行,但后缀必须是.todoconfig,.todoconfig.json或todo.config都无效) - Sublime 必须通过 File → Open Folder… 打开整个目录,不能双击单个
.js文件或用Open File - 默认只扫
["*.py", "*.js", "*.html", "*.css"],.ts、.vue、.jsx等全被跳过——它连文件都不读,更别说匹配了
怎么让 .ts 和 .vue 里的 TODO 也被搜到
进 Preferences → Package Settings → TodoReview → Settings,在右侧用户设置里补全 file_extensions:
{
"file_extensions": ["*.js", "*.ts", "*.vue", "*.jsx", "*.html", "*.py"],
"folder_exclude_patterns": ["node_modules", "dist"]
}注意:vue 或 .vue 无效,必须写成 *.vue;删掉原有项会导致 Python/HTML 也扫不到;加 folder_exclude_patterns 能避免卡顿。
跳转错行、定位偏移怎么办
这不是正则问题,是文本解析层面失准,常见诱因有:
- 文件带 BOM(尤其 Windows 下生成的
.ts):用 File → Reopen with Encoding → UTF-8 强制重载 - 混用 Tab 和空格缩进:执行 View → Indentation → Convert Indentation to Spaces
- 注释格式不规范:比如
//TODO:(无空格)、// TODO:(前面多空格)、/* TODO */(斜杠紧贴),推荐统一用// TODO: xxx
想把 NOTE、BUG、HACK 也一起列出来
默认只认 TODO 和 FIXME,扩展靠改 patterns 正则,不是加 keywords 数组:
{
"patterns": ["(?i)\b(TODO|FIXME|NOTE|BUG|HACK|XXX)\b"]
}(?i) 开启忽略大小写,\b 是单词边界,防止把 TODO_LIST 里的 TODO 单独抠出来。注意反斜杠要双写,否则 JSON 解析失败。
最常被忽略的是:TodoReview 的跳转完全依赖原始行号,一旦文件存在 BOM、混合缩进或非标准注释格式,行号计算就偏了——这时候再调正则也没用,得先修文本结构本身。

















