WebStorm的TODO工具窗口是待办事项总控台,Mac按Cmd+6、Windows/Linux按Ctrl+6唤出;默认识别TODO/FIXME,自定义标签需在Settings→Editor→TODO中添加正则模式(如\bBUG\b);仅行注释// TODO被识别,多行块注释仅JS/TS支持;过滤器可按优先级筛选并导出共享。

TODO列表在哪看?快捷键和入口必须记牢
WebStorm的TODO工具窗口就是你的待办事项总控台,不打开它,所有// TODO都只是普通注释,不会被聚合、筛选或高亮追踪。
Mac用户按 Cmd + 6(不是Ctrl + Alt + 0,那个是旧版或误传),Windows/Linux用户按 Ctrl + 6——这是唯一直接唤出TODO工具窗口的快捷键。别去菜单栏翻“View → Tool Windows”,效率太低。
- 如果按了没反应,先检查是否在编辑器里有焦点(比如光标没在代码区)
- 窗口默认停靠在左下角,若被关掉,可通过
View → Tool Windows → TODO手动唤回 - 它只显示当前项目中已索引的文件里的TODO项;刚加的
// TODO可能要等几秒(WebStorm后台重建索引),不用手动刷新
怎么让WebStorm识别自定义TODO标签,比如// BUG或// REVIEW
WebStorm默认只认TODO和FIXME(不区分大小写),但实际协作中你肯定需要更多语义化标签——关键不是改代码,而是改它的模式匹配规则。
路径:Preferences / Settings → Editor → TODO → 点击右侧Patterns区域的+按钮(Alt+Insert)→ 填写名称(如BUG)、正则(如\bBUG\b)、勾选Case sensitive(建议不勾,更宽松)。
-
\b是单词边界,防止BUGGY也被误匹配 - 不要写
// BUG这种完整字符串——模式只管“内容”,注释语法由WebStorm自动处理 - 多行TODO仅在
JavaScript和TypeScript中生效,Java/Python里写了/* TODO\n xxx */也不会被识别为一条
为什么有些TODO没出现在列表里?常见断点排查
最常被忽略的是文件类型支持范围和索引状态——不是所有语言、所有注释形式都被一视同仁。
- 非JS/TS文件中写
/* TODO: xxx */(块注释)大概率不显示,但// TODO(行注释)通常可以 - 文件被标记为“Excluded”(右键 →
Mark as Excluded)后,里面的所有TODO都不会索引 - 刚添加的模式不会立即生效于已打开的编辑器标签页,需切换文件或稍等5–10秒等索引完成
- 如果用了
/** @todo */这类JSDoc风格,WebStorm默认不识别,得手动加正则:@todo\b
用过滤器聚焦关键TODO,避免信息过载
一个中型项目轻易就有上百条TODO,全堆在一起毫无意义。WebStorm的过滤器(Filter)不是锦上添花,而是刚需。
在TODO工具窗口顶部点击漏斗图标 → Edit Filters → 新建过滤器,比如叫High Priority,然后勾选你定义的BUG、FIXME、CRITICAL等模式。
- 过滤器不改变原始数据,只是视图层筛选,切回“All”就能看到全部
- 不同过滤器可配不同图标(比如
BUG用⚠️,REVIEW用?),靠图标一眼区分优先级 - 团队共用时,把过滤器配置导出为
.xml,发给成员导入,比口头约定“用FIXME标阻塞问题”靠谱得多
WebStorm的TODO机制本质是「正则驱动的静态扫描」,它不执行代码、不理解上下文,所以别指望它判断“这个TODO是不是已经失效”。真正容易被忽略的,是模式正则的边界控制和文件类型限制——写错一个\b,或在Python里依赖多行块注释,结果就是待办事项悄悄消失。

















