<p>PhpStorm 默认仅识别全大写 // TODO、// FIXME、// XXX 三类行内注释,需后接冒号或空格;小写、中文、块注释及HTML中格式不符(如非 <!-- TODO: -->)均不生效,且依赖目录设为Sources Root、正则配置正确及索引就绪。</p>

PhpStorm 默认只识别 // TODO、// FIXME、// XXX 这三种全大写、后接冒号或空格的行内注释,其他写法(比如小写 todo、中文 待办、块注释 /* TODO */)默认不生效——不是 IDE 坏了,是规则没匹配上。
为什么写了 // todo 却没进 TODO 窗口
常见错误不是漏写,而是格式或上下文不对:
-
// todo: 修复登录❌ 小写 + 冒号前无空格 → 默认正则不匹配 -
// TODO-xxx❌ 中划线打断关键词连续性 →TODO后必须是空格或冒号 -
/* TODO: xxx */✅ 多行注释里能识别,但仅限 PHP/JS 等支持该语法的语言;HTML 必须用<!-- TODO: xxx --> -
// TODO(urgent): 重试逻辑❌ 括号直接跟在TODO后 → 默认规则不提取标签,需自定义正则 - 光标不在编辑器主区域(比如在搜索框或侧边栏)→
Ctrl+Alt+T快捷键失效
怎么让 PhpStorm 认出小写 todo 和中文待办
要支持非默认关键词,得手动加正则模式,路径是:Settings > Editor > TODO(macOS 是 Preferences > Editor > TODO):
- 点
+新增 Pattern,填正则:\b(todo|待办|fixme):?\b - 务必勾选
Case insensitive,否则todo不匹配 - 给这行规则设个醒目
Color(比如橙红),否则编辑器里不显色 - 改完必须点
Apply(不是OK),否则配置不落地 - 关闭再重开 TODO 窗口(
Alt+6关 → 再按一次开),强制重新扫描,缓存不刷新就看不到新标记
HTML 文件里的 TODO 怎么写才有效
HTML 不支持 // 行注释,只能用 <!-- -->,且 PhpStorm 对 HTML 的 TODO 扫描有额外要求:
立即学习“PHP免费学习笔记(深入)”;
- 必须写成:
<!-- TODO: 修复导航栏响应式断点 -->✅ 全大写 + 冒号后空格 -
<!-- todo: xxx -->❌ 小写不匹配;<!-- TODO:xxx -->❌ 冒号后缺空格 - 文件所在目录必须设为
Sources Root(右键目录 →Mark Directory as > Sources Root) - 确认
Settings > Editor > TODO中已启用HTML文件类型(勾选对应复选框) - 如果项目混用 Blade 或 Vue 单文件组件,
<!--在<script>块里可能被当成 HTML 注释忽略,此时应改用 JS 风格// TODO
如何过滤掉 vendor 或 node_modules 里的 TODO
第三方库的 TODO 会刷屏,干扰主线任务,靠 Scope 过滤最直接:
- 打开 TODO 窗口(
Alt+6),右上角点漏斗图标Filter - 选
Scope Based→ 点齿轮图标 →Configure Filters - 新建 Scope:
File | Settings | Project | Scopes→+→ 类型选Custom - Pattern 填:
src/**或app/**(按你实际业务代码路径调整) - 排除路径加
!vendor/**、!node_modules/**(注意前面的感叹号) - 回到 TODO 窗口,下拉选择这个新 Scope,列表立刻干净
真正容易被忽略的是:正则写错不会报错,只会静默失效;改完规则不重启扫描,IDE 还在用旧缓存;HTML 文件没设为 Sources Root,再标准的注释也进不了列表——这些细节卡住的不是功能,是预期。


















