goland内置代码标记功能默认识别todo、fixme、xxx等注释关键词,需在settings > editor > todo中启用并配置正则规则,支持自定义类型、颜色高亮及导出,但仅限.go文件单行注释且依赖正确索引与作用域设置。

什么是GoLand里的代码标记(TODO、FIXME等)
GoLand默认识别TODO、FIXME、XXX这类注释关键词,把它们转成可点击、可筛选的标记。不是插件,是内置功能,但需要确认是否启用——很多人改了注释却没在侧边栏看到标记,其实是正则规则被意外关闭或改写了。
- 默认规则路径:
Settings > Editor > TODO,里面列着TODO、FIXME等预设项 - 每条规则含正则表达式,比如
TODO默认匹配//\s*TODO(.*),注意空格和大小写敏感性 - 如果写的是
// todo: 需要重构(小写),默认不识别,得手动加一条todo规则,或改用// TODO: - 支持跨行匹配,但仅限单行注释(
//),/* */块注释中的TODO默认不触发
怎么让TODO标记出现在“TODO”工具窗口里
标记写了,但TODO工具窗口(Alt+6)里空空如也?常见原因是作用域没选对,或者项目索引还没完成。
- 打开
TODO工具窗口后,看右上角下拉菜单——默认可能是Current File,要改成All Places或指定Project范围 - 首次打开或大项目刚导入时,GoLand可能还在索引,等待右下角提示“Indexing finished”再刷新
- 如果用了
go mod且模块路径嵌套深,确保Settings > Go > Modules里已正确识别所有go.mod,否则部分目录不会被扫描 - 标记必须写在源码文件中(
.go),go.sum、README.md或测试数据文件里写的TODO不会显示
如何自定义标记类型并高亮显示
只靠TODO和FIXME不够区分优先级,比如想把接口待实现标为API-NEXT、数据库迁移标为MIGRATE,就得加自定义规则。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 在
Settings > Editor > TODO点+添加新条目,名称填API-NEXT,正则写//\s*API-NEXT(.*) - 给不同标记设不同颜色:选中条目 → 点
Change Colour→ 选浅红/橙/蓝,避免全用黄色导致视觉疲劳 - 正则里别漏
\s*,否则//API-NEXT(紧贴)会匹配失败;想支持/* API-NEXT: ... */?得写成/\*\s*API-NEXT(.*)\*/,且勾选Case insensitive - 改完规则后,已存在的标记不会自动刷新,需手动
File > Reload project from disk或改一行代码触发重解析
为什么有些TODO没出现在结构视图或导航栏里
GoLand的Structure视图(Alt+7)和编辑器顶部的导航栏(breadcrumbs)默认不显示TODO,这是设计如此——它们只展示语言结构(函数、类型、方法),不是任务管理器。
- 想快速跳转到某个TODO?用
Ctrl+Shift+T(Windows/Linux)或Cmd+Shift+T(macOS)呼出TODO搜索框,输入关键词实时过滤 - 想批量处理?在
TODO工具窗口里右键某条目 →Jump to Source,或拖选多条 → 右键Delete(慎用,只是删注释,不删逻辑) - 导出任务清单?
TODO窗口右上角Export to File可存为CSV,但注意它导出的是当前筛选结果,不是全部历史 - 团队协作时,别依赖TODO当任务跟踪器——它不带状态、截止时间、负责人,只是临时占位符;真正要追踪的,该进Jira或GitHub Issues
最常被忽略的一点:标记正则里的括号(.*)必须存在,否则GoLand无法提取描述文本,导致工具窗口里只显示“TODO”没内容。另外,如果项目启用了go vet或staticcheck,某些严格模式会警告TODO注释,得在检查配置里排除style类规则。










