phpstorm默认todo窗口显示整个项目(含vendor等)所有匹配注释,需手动配置scope、pattern和filter三层规则才能精准筛选;否则无法区分他人待办与自身任务。

PhpStorm 的 TODO 过滤器不是“开箱即用”的智能筛选器,它必须手动配置作用域和规则,否则默认显示整个项目(含 vendor、node_modules)里所有匹配的注释,根本没法用于实际项目管理。
为什么默认 TODO 窗口里全是别人家的待办?
PhpStorm 默认扫描 All Places,包括 vendor/、node_modules/、tests/ 甚至 IDE 自带的模板文件。你看到的大量 TODO 很可能来自 Composer 包或框架源码,和你当前开发无关。
- 打开
TODO工具窗口(Alt+6/Cmd+6),右上角漏斗图标旁显示的是当前 Scope —— 大概率是All Places - 点击漏斗图标 → 切换到
Scope Based→ 选择预设的Project Files(仅当前项目源码)或Production Sources(排除 test 目录) - 如果预设不够细,点齿轮图标 →
Configure Scopes→ 新建一个 scope,比如src/**或app/**, config/**,路径支持通配符和排除语法(如!**/tests/**)
怎么按人/模块/优先级快速筛出自己的任务?
单靠文件路径还不够。团队协作中,你需要区分 // TODO @alice 和 // TODO @bob,或标记 // TODO: HIGH 级别任务。这得靠自定义模式 + 过滤器组合。
- 先去
Settings > Editor > TODO(Cmd+, > Editor > TODO),在Patterns里加一条新正则:\bTODO:\s*HIGH\b.*,勾选Case insensitive,设个醒目的颜色 - 回到
Filters区域,点+新建过滤器,名称填High Priority,只勾选刚才新建的TODO: HIGH模式 - 再建一个过滤器叫
Alice's Tasks,Pattern 填@alice\b.*,注意加\b防止误匹配@alicesmith - 切换过滤器时,
TODO窗口会实时刷新,但前提是:你刚改过代码,且TODO窗口处于激活状态(否则缓存不更新)
过滤器生效但跳转不到代码?检查这三个点
常见现象是过滤器列表里有条目,双击却打不开文件,或光标停在错误位置。问题通常不在过滤器本身,而在注释格式或扫描状态。
-
// TODO后必须跟空格或冒号,//TODO(紧贴)在部分版本中不触发高亮,也不进索引 - 多行 TODO 必须开启设置:
Settings > Editor > TODO > Treat the indented text on the following lines as part of the same TODO - 修改过滤器或模式后,旧缓存还在——关掉
TODO窗口(Alt+6再按一次),重新打开,它会强制全量重扫
真正卡住项目的,从来不是没写 TODO,而是写了却找不到、分不清、不敢删。过滤器本身很简单,难的是把 Scope、Pattern、Filter 三层逻辑串起来,而且每次新增模块或调整目录结构,都得回头检查 scope 路径是否还准确。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










