goland通过识别// todo格式注释(全大写、后接空格/冒号/括号)自动索引待办事项,仅扫描.go文件中的//行注释,需保存文件触发索引,支持按当前文件或未提交变更过滤,双击可跳转编辑,但需手动删除已完成项。

用 TODO 注释触发 IDE 自动索引
GoLand 本身不识别任意字符串,但会扫描符合特定格式的注释:只要包含 TODO(全大写、无空格、紧跟冒号或空格),它就会被纳入待办列表。常见错误是写成 todo、Todo 或 TODO: 后多加一个冒号导致匹配失败——实际只需 TODO 加任意分隔符(空格、冒号、括号都行)即可。
支持的典型写法包括:
// TODO implement handler logic// TODO: add validation// TODO(add auth middleware)
注意:注释必须在 Go 源文件(.go)中,且不能出现在字符串字面量或注释块(/* */)内——GoLand 只解析行注释 // 中的 TODO。
打开 TODO 工具窗口并筛选范围
按 Alt+6(Windows/Linux)或 ⌘+6(macOS)直接唤出 TODO 工具窗口。默认显示整个项目所有匹配项,但容易被旧任务淹没。关键操作是点击右上角的漏斗图标(Filter),然后勾选:
-
Current file:只看当前编辑的文件,适合专注补全 -
Uncommitted changes:仅显示 git 未提交的 TODO,避免干扰已归档的遗留项 - 取消勾选
Comments下的FIXME和XXX(除非你主动用了这些标签)
如果项目开启了 VCS 集成,未提交的 TODO 会带小锁图标,一眼可辨哪些是“刚写的待办”而非历史遗留。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
双击跳转 + 快速编辑上下文
在 TODO 窗口中双击任意条目,光标自动跳到对应行,并高亮整行注释。此时别急着删——先看上下文:
- 检查该 TODO 所在函数是否已定义但没写完(比如有
return却没填值) - 确认结构体字段是否真缺初始化(比如
type Config struct { Port int }但实例化时漏了Port: 8080) - 留意是否紧邻接口实现桩代码(如
panic("not implemented")),这类 TODO 往往是手动加的提醒,需同步替换 panic
编辑完代码后,GoLand 不会自动删除 TODO 行——你得手动删掉注释,否则下次打开还会出现。这是有意设计,防止误删未完成逻辑。
避免误报和漏报的关键点
TODO 扫描不是实时的,依赖文件保存触发索引。常见坑:
- 写了
// TODO但没保存文件 → 不会出现在 TODO 窗口 - 在
go.mod或测试文件(*_test.go)里写 TODO → 默认不扫描,需在 Filter 中勾选Tests或Configuration files - 用
goland或idea这类词触发误报 → GoLand 只认硬编码的TODO字符串,不支持模糊匹配
真正要定位“没写完的代码”,核心是把 TODO 当作人工标记的锚点,而不是让 IDE 替你发现语法缺陷——它不管 return 少写值、if 缺 else 这类问题,那些得靠编译器报错或静态检查(go vet)来暴露。










