GoLand 中 Inlay Hints 默认不开启,需手动启用总开关(Settings → Editor → General → Appearance → Show inlay hints)及 Go 专属选项(如 Parameter names、Type hints);type 提示依赖 gopls v0.15+ 和 Go 1.21+,且与编辑器字体、行距设置强相关。

GoLand 中 Inlay Hints 默认是否开启
默认不开。GoLand 2026.1.x 系列(含 2026.1.1)对 Go 语言的 inlay hints 支持依赖 gopls v0.15+,但即使 gopls 正常运行,GoLand 也不会自动启用所有提示类型——它把控制权交给了用户手动开关。
常见现象:你写了 fmt.Println("hello"),却没看到 arg1: 这类参数名提示;或声明 var x = 42,没显示推断出的 int 类型标注。这不是 bug,是功能被关了。
- 确认是否启用:Settings → Editor → General → Appearance → 勾选
Show inlay hints(这是总开关,不勾则全无) - Go 专属提示需额外开启:Settings → Languages & Frameworks → Go → Inlay hints → 勾选你需要的项,比如
Parameter names for function calls、Type hints for variables - 如果勾选后仍不显示,大概率是
gopls没加载成功——看右下角状态栏是否显示Go (gopls)且无 loading 图标;否则按Ctrl+Shift+P输入Go: Restart Language Server强制重连
为什么 type hints 不显示,但 parameter hints 可以
因为它们由不同配置项控制,且底层依赖的 gopls 能力协商结果不同。GoLand 的 Inlay hints 设置页里,“Type hints for variables” 实际对应 LSP 的 inlayHint 请求中 kind: "type" 类型,而 “Parameter names” 对应 kind: "parameter"。两者在 gopls 中是独立实现、可单独禁用的。
使用 uber-go/dig 在 Golang 中实现依赖注入——基于反射容器,提供 Provide/Invoke、dig.In/dig.Out 参数与结果对象,支持命名依赖等
-
gopls默认只开启parameter提示;type提示需显式启用:在 Settings → Languages & Frameworks → Go → Inlay hints → 勾选Type hints for variables后,GoLand 会向gopls发送带{"type": true}的inlayHintcapability 声明 - 若你用的是自定义
gopls配置(如go.tools.goplsArgs),检查是否误加了-rpc.trace或禁用了hints相关 flag - 类型提示对泛型、接口推导较弱:比如
var s = []string{}可能显示[]string,但var x = new(int)很可能不显示*int——这是gopls当前限制,非 GoLand 配置问题
如何让 inlay hints 在特定上下文不出现
不能全局关闭某类提示,但可以按作用域精细过滤。GoLand 提供两种方式:
立即学习“go语言免费学习笔记(深入)”;
- 按文件类型屏蔽:Settings → Editor → Inlay hints → 点击右上角
⋮→Configure for file types…→ 添加go,再取消勾选不需要的 hint 类型(比如测试文件里关掉parameter提示) - 用注释临时禁用单行:在代码行末加
//goland:nohint,该行所有 inlay hints 就不会渲染(注意不是//nolint,后者对 linter 有效,对 hints 无效) - 性能敏感时慎用“resolve support”:如果启用了
Resolve inlay hints on hover(Settings → Languages & Frameworks → Go → Inlay hints),每次鼠标悬停都会触发一次inlayHint/resolve请求,可能卡顿;建议保持关闭,除非你真需要点击提示展开更多上下文
gopls 版本与 inlay hints 兼容性关键点
GoLand 2026.1.1 自带的 gopls 是 v0.15.4,支持 LSP 3.18 的完整 inlayHint 协议,但部分提示类型仍受限于 Go SDK 版本。
- 类型提示(
typekind)要求 Go 1.21+:若项目go.mod中go 1.20,var x = map[string]int{}可能无法推导出完整类型,只显示map或空白 - 函数调用参数提示(
parameterkind)在 Go 1.19+ 已稳定,但对方法接收者(如obj.Method())的参数名提示,需goplsv0.14.3+,旧版可能只提示第一个参数 - 不要手动降级
gopls:通过go install golang.org/x/tools/gopls@latest更新后,GoLand 会自动识别;但如果新版gopls出现提示错位或崩溃,可临时切回 v0.15.4(GoLand 自带版本),命令是go install golang.org/x/tools/gopls@v0.15.4
Editor → Font → Line spacing > 1.0,或者用了非等宽字体(如 JetBrains Mono 的某些变体),提示文字可能被截断或错位——这时别调 inlay hints 设置,先还原编辑器基础排版。

















