根本原因是 todo-show 默认只识别 //todo:(冒号后必须有空格),且依赖 language-todo 提供的 scope 信息,未保存文件、grammar 错误、未添加项目根目录、vcs 忽略路径等均会导致扫描失败。

为什么 todo-show 扫不出你的 // TODO 注释
根本原因不是插件坏了,而是它默认只认 //TODO:(冒号后必须有空格),不认 // TODO:、// todo:、//TODO:fix this 这类写法。它依赖 Atom 底层的 find-and-replace 逻辑,且默认 case_sensitive 为 true。
- 文件没保存——未保存的缓冲区不会被扫描
- 右下角 grammar 显示
Plain text而非JavaScript或TypeScript,导致 scope 不匹配,language-todo 无法注入语法信息 - 只打开了单个文件,没通过
File → Add Project Folder添加整个项目根目录;插件默认只扫项目根目录,不扫孤立文件 -
Ignore VCS Ignored Paths开启状态下,node_modules、.git等路径被跳过——这本是好事,但若你把待办注释写在被.gitignore的配置文件里,就会漏掉
如何让 todo-show 支持自定义关键词和大小写混合
直接改配置比写正则更稳,而且改完不用重启 Atom——刷新一次就能生效。
- 打开
Atom → Settings → Packages → todo-show → Settings - 把
Keywords改成:["TODO", "todo", "FIXME", "fixme", "NOTE", "note", "HACK", "hack"] - 取消勾选
Case Sensitive - 可选:在
Custom Pattern填正则,例如/\/\/\s*(TODO|FIXME|NOTE)\s*:?\s*(.*)$/—— 注意必须保留两个捕获组,否则面板里只显示空行
改完后按 Alt+Shift+T(Win/Linux)或 Cmd+Shift+T(macOS)手动刷新,立刻生效。
点击 todo 列表项跳转错行或打不开文件
这不是 bug,是路径或 scope 解析失准导致的定位偏移,尤其在 Vue/TS 单文件组件或含中文路径的项目里高频出现。
- 项目路径含中文或空格?移到纯英文路径再试,比如
/Users/name/my-project/ - 没正确设项目根目录?右键任意文件 →
Open in Project,或拖整个文件夹到 Atom 启动窗口 - 禁用
Use Git Branch Filter,避免 git 状态异常中断扫描 - 临时禁用
language-babel或atom-beautify——它们可能重排空行或干扰 scope,导致行号错位
language-todo 是必需依赖,不是可选增强
没它,todo-show 能搜出内容,但编辑器里不着色、无图标、无法视觉识别,等于“半残”。它不修改文件,只做语法着色,和 language-javascript 等共存无冲突。
- 装完
language-todo后,// TODO:(冒号后有空格)会自动高亮 - 如果高亮失效,先确认右下角 grammar 显示正确;若显示
Plain text,手动选择对应语言 -
todo-show的搜索能力依赖language-todo提供的 scope 信息——二者配合才完整,缺一不可
真正麻烦的不是单机配置,而是团队里每个人 Custom Pattern 不一致,同一份代码在不同人机器上显示不同的 TODO 列表。上线前最好把正则字符串写进 README,或者用 .todo-show.json 文件统一管理——插件支持该配置文件,优先级高于 UI 设置。











