Go语言服务器gopls添加福利群:解决AI开发者的「MCP实战痛点」gopls,Go 语言服务器gopls(发音为“Go please”)是由 Go 团队开发的官方 Go 语言服务器。它为任何兼容 LSP 的编辑器提供了丰富的 IDE 功能。
你通常不需要直接与 gopls 交互——它会自动集成到你的编辑器中。具体功能和设置因编辑器而异,因此我们建议你查看下面的编辑器文档。此外,gopls 的每个功能的文档都会说明它是否在每个客户端编辑器中被支持。
要开始使用 gopls,请在你选择的编辑器中安装一个 LSP 插件。
如果你使用的编辑器不在这个列表中,请发送一个 CL 更新此文档。
在大多数情况下,你不需要手动安装或更新 gopls。你的编辑器应该会为你处理这一步。
如果你想获取 gopls 的最新稳定版本,请运行以下命令:
go install golang.org/x/tools/gopls@latest
更多信息请参阅高级安装说明。
有关 gopls 发布的更多信息,请参阅发布策略。
gopls 支持 Go 模块、多模块和 GOPATH 模式。有关支持的工作区布局的信息,请参阅工作区文档。
你可以配置 gopls 来改变你的编辑器体验或查看额外的调试信息。配置选项将由你的编辑器提供,因此请参阅你的编辑器说明以获取具体细节。完整的 gopls 设置列表可以在设置文档中找到。
gopls 继承你的编辑器环境,因此请注意你配置的任何环境变量。一些编辑器,如 VS Code,允许用户选择性地覆盖某些环境变量的值。
gopls 由 Go 工具团队 的工程师维护,他们积极监控 Go 和 VS Code Go 的问题跟踪器。
gopls 遵循 Go 发布政策,这意味着它正式只支持最近的两个主要 Go 版本。直到 2024 年 8 月,Go 团队还将尽力支持最近的 4 个主要 Go 版本,如 issue #39146 中所述。
使用 gopls 时,需要注意三个版本:
gopls 的 Go 版本。gopls 执行的 go list 命令的版本,用于加载有关你工作区的信息。go.mod 文件中的 go 指令指定的版本,它决定了文件的 Go 语言语义。从 2024 年 8 月发布的 Go 1.23.0 和 gopls@v0.17.0 开始,我们只支持最新的 Go 版本作为 gopls 构建 Go 版本。然而,由于 Go 1.21 中添加的向前兼容性支持,只要使用 Go 1.21 或更高版本安装 gopls,任何必要的工具链升级都将自动处理,就像其他依赖项一样。
此外,从 gopls@v0.17.0 开始,go 命令版本 将从 4 个版本缩小到 3 个。这与 Go 发布政策更加一致。
gopls 支持 所有 Go 版本作为其 语言版本,通过根据语言版本提供编译器错误,并根据该 Go 版本可用的标准库 API 过滤可用的标准库符号。
维护对使用旧版本 Go 构建 gopls 的支持给 gopls 维护者带来了显著的摩擦,并阻碍了其他改进。如果你无法在系统上安装支持的 Go 版本,你仍然可以安装旧版本的 gopls。下表显示了支持给定 Go 版本的最终 gopls 版本。表中列出的 Go 版本之后的任何版本都可以与任何版本的 gopls 一起使用。
| Go 版本 | 支持的最终 gopls 版本(无警告) |
|---|---|
| Go 1.12 | gopls@v0.7.5 |
| Go 1.15 | gopls@v0.9.5 |
| Go 1.17 | gopls@v0.11.0 |
| Go 1.18 | gopls@v0.14.2 |
| Go 1.20 | gopls@v0.15.3 |
gopls 目前只支持 go 命令,因此如果你使用不同的构建系统,gopls 将无法正常工作。Bazel 不被官方支持,但可以通过适当配置的 go/packages 驱动程序使其工作。更多信息请参阅 bazelbuild/rules_go#512。你可以按照这些说明配置你的 gopls 以与 Bazel 一起工作。
如果你在使用 gopls 时遇到问题,请按照故障排除指南中的步骤进行操作。