TodoReview 插件需配置 .todoconfig 文件并以 Project 方式打开文件夹才能启用;自定义 patterns 可扩展 TODO/FIXME 匹配规则并支持忽略大小写;需在 file_extensions 中添加 .vue、.ts 等后缀;跳转偏移常因 BOM、混合缩进或注释格式不规范导致。

Sublime Text 本身不内置 TODO/FIXME 标记的集中管理功能,但通过 TodoReview 插件可以快速扫描、聚合并跳转所有标记——前提是正确配置正则规则和作用范围,否则容易漏扫或误报。
安装 TodoReview 插件后为什么没反应?
常见原因是插件未激活扫描,或项目根目录缺失 .todoconfig 配置文件。默认情况下,TodoReview 只在有该配置文件的项目中启用,且只扫描当前打开的文件夹(project)下的文件。
- 确保已通过 Package Control 安装
TodoReview,重启 Sublime 后按Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入TodoReview: Toggle尝试触发 - 若无响应,在项目根目录手动创建
.todoconfig文件(内容可为空,仅需存在) - 确认 Sublime 当前是以「Project」方式打开文件夹(File → Open Folder…),而非单独打开多个文件
如何自定义 TODO/FIXME 的匹配规则?
TodoReview 默认识别 TODO、FIXME、XXX,但不支持大小写模糊匹配(如 todo 或 Fixme),也不包含 NOTE 或 HACK。需修改 TodoReview.sublime-settings 中的 patterns 数组。
- 打开
Preferences → Package Settings → TodoReview → Settings - 在用户设置中覆盖
patterns,例如:
{
"patterns": [
"(?i)\\b(TODO|FIXME|NOTE|HACK|BUG|XXX)\\b"
]
}
注意:(?i) 开启忽略大小写,\\b 确保匹配单词边界,避免把 TODO_LIST 里的 TODO 单独抽出来
为什么某些文件类型(如 .vue、.ts)里的 TODO 没被扫到?
默认配置只扫描常见后缀(["*.py", "*.js", "*.html", "*.css"]),.vue、.ts、.jsx 等需要显式加入 file_extensions。
- 在
TodoReview.sublime-settings用户设置中添加:
{
"file_extensions": ["*.js", "*.ts", "*.jsx", "*.vue", "*.html", "*.py", "*.rb"]
}
注意:不要删掉原有扩展名,否则 Python/HTML 文件也会失效;路径通配符必须带 * 和点号,写成 vue 或 .vue 都无效
扫描结果里跳转失败或定位偏移?
这是最易被忽略的问题:当文件含 BOM、混合缩进(空格+Tab)、或注释格式不标准(如 //TODO: 中冒号紧贴 TODO)时,TodoReview 的行号计算可能错位。
- 优先统一使用空格缩进,避免 Tab 混入
- 推荐标准写法:
// TODO: 修复登录态失效(冒号后空一格),而不是//TODO:或// TODO:前多空格 - 如果某文件总跳转不准,可在
.todoconfig中临时排除它:"exclude_files": ["dist/*.js"]
正则匹配本身不解析语法结构,所以它本质上是文本扫描器——别指望它理解 TypeScript 接口里的 JSDoc 注释是否真在生效范围内。










