Go 博客

VS Code Go 扩展默认启用 Gopls

Go 工具团队
2021 年 2 月 1 日

我们很高兴地宣布,VS Code Go 扩展现已默认启用 gopls 语言服务器,以提供更强大的 IDE 功能,并更好地支持 Go modules。

gopls 提供 IDE 功能,例如智能自动补全、签名帮助、重构和工作区符号搜索。)

两年前 Go modules 发布时,它彻底改变了 Go 开发者工具的格局。诸如 goimportsgodef 等工具以前依赖于代码存储在 $GOPATH 中的事实。当 Go 团队开始重写这些工具以使其与 modules 兼容时,我们立即意识到需要一种更系统的方法来弥合差距。

因此,我们开始着手开发一个单一的 Go 语言服务器gopls,它可以为任何兼容的编辑器前端提供 IDE 功能,例如自动补全、格式化和诊断。这个持久且统一的服务器与以前的命令行工具集合相比,是一个 根本性的转变

除了致力于 gopls 的开发,我们还寻求其他方法来创建稳定的编辑器工具生态系统。去年,Go 团队接管了 VS Code 的 Go 扩展。作为这项工作的一部分,我们优化了扩展与语言服务器的集成——自动化 gopls 更新,重新组织和澄清 gopls 设置,改进故障排除工作流程,并通过调查征求反馈。我们还继续培养一个活跃用户和贡献者社区,他们帮助我们提高了 Go 扩展的稳定性、性能和用户体验。

公告

1 月 28 日,gopls 和 VS Code Go 的发展都迎来了重要的里程碑,因为 gopls 现在已默认在 VS Code 的 Go 扩展中启用。

在此次切换之前,我们花了很长时间迭代 gopls 的设计、功能集和用户体验,专注于提高性能和稳定性。一年多以来,gopls 在 Vim、Emacs 和其他编辑器的绝大多数插件中已成为默认选项。我们已经发布了 24 个 gopls 版本,并且非常感谢我们的用户一直以来在每一个版本上提供反馈和报告问题。

我们还投入了时间来优化新用户体验。我们希望 VS Code Go 结合 gopls 将是直观的,并带有清晰的错误消息,但如果您有疑问或需要调整某些配置,您可以在我们 更新的文档 中找到答案。我们还录制了 屏幕录像 来帮助您入门,以及 动画 来展示一些难以发现的功能。

Gopls 是处理 Go 代码的最佳方式,尤其是在使用 Go modules 时。随着 Go 1.16 的即将到来(其中 modules 将默认启用),VS Code Go 用户将获得开箱即用的最佳体验。

尽管如此,这次切换并不意味着 gopls 已经完成。我们将继续致力于修复 bug、添加新功能和提高整体稳定性。我们下一个重点关注的领域将是改善 处理多个 modules 时的用户体验。来自我们更广泛用户群的反馈将有助于指导我们下一步的行动。

那么,您需要做什么?

如果您使用 VS Code,您无需做任何事情。当您收到下一次 VS Code Go 更新时,gopls 将会自动启用。

如果您使用其他编辑器,您很可能已经在使用 gopls。如果还没有,请参阅 gopls 用户指南,了解如何在您偏好的编辑器中启用 gopls。语言服务器协议确保 gopls 将继续为每个编辑器提供相同的功能。

如果 gopls 对您不起作用,请参阅我们 详细的故障排除指南 并提交 issue。如果您需要,您可以随时 在 VS Code 中禁用 gopls

谢谢

致我们现有用户:感谢您在我们第三次重写缓存层期间的耐心等待。致我们新用户:我们期待听到您的体验报告和反馈。

最后,关于 Go 工具的讨论,不能不提 Go 工具社区的宝贵贡献。感谢你们的深入讨论、详细的 bug 报告、集成测试,最重要的是,感谢你们出色的贡献。最令人兴奋的 gopls 功能来自我们充满激情的开源贡献者,我们非常感谢你们的辛勤工作和奉献。

了解更多

观看 屏幕录像 了解如何开始使用 gopls 和 VS Code Go,并查看 VS Code Go README 获取更多信息。

如果您想了解更多关于 gopls 的详细信息,请参阅 gopls README

下一篇文章: Go 1.16 发布
上一篇文章: Go 中的命令 PATH 安全
博客索引