Sublime如何管理代码中的TODO、FIXME等标记? (TodoReview插件)

13次阅读

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

Sublime如何管理代码中的TODO、FIXME等标记? (TodoReview插件)

sublime Text 本身不内置 TODO/FIXME 标记的集中管理功能,但通过 TodoReview 插件可以快速扫描、聚合并跳转所有标记——前提是正确配置正则规则和作用范围,否则容易漏扫或误报。

安装 TodoReview 插件后为什么没反应?

常见原因是插件未激活扫描,或项目根目录缺失 .todoconfig 配置文件。默认情况下,TodoReview 只在有该配置文件的项目中启用,且只扫描当前打开的文件夹(project)下的文件。

  • 确保已通过 Package Control 安装 TodoReview,重启 Sublime 后按 Ctrl+Shift+Pwindows/linux)或 Cmd+Shift+PmacOS),输入 TodoReview: Toggle 尝试触发
  • 若无响应,在项目根目录手动创建 .todoconfig 文件(内容可为空,仅需存在)
  • 确认 Sublime 当前是以「Project」方式打开文件夹(File → Open Folder…),而非单独打开多个文件

如何自定义 TODO/FIXME 的匹配规则?

TodoReview 默认识别 TODOFIXMEXXX,但不支持大小写模糊匹配(如 todoFixme),也不包含 NOTEHACK。需修改 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 注释是否真在生效范围内。

text=ZqhQzanResources