:::info 日期:2021 年 02 月 01 日
作者:Go tools team
原文链接:https://go.dev/blog/gopls-vscode-go :::

我们很高兴地宣布,VS Code Go 扩展现在默认启用 gopls language server,以提供更强大的 IDE 功能并更好地支持 Go 模块。
features.gif
(gopls 提供 IDE 功能,例如智能自动补全、签名帮助、重构和工作区符号搜索。)

Go 模块在两年前发布时,它们彻底改变了 Go 开发人员工具的格局。 goimports 和 godef 之类的工具以前依赖于代码存储在 $GOPATH 中的事实。 当 Go 团队开始重写这些工具以使用模块时,我们立即意识到我们需要一种更系统的方法来弥合差距。

因此,我们开始研究单一 Go language server 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,我们非常感谢我们的用户始终如一地为每个版本提供反馈和报告问题。

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

Gopls 是处理 Go 代码的最佳方式,尤其是 Go 模块。 随着 Go 1.16 即将到来,默认启用模块,VS Code Go 用户将拥有开箱即用的最佳体验。

尽管如此,此切换并不意味着 gopls 已完成。 我们将继续致力于错误修复、新功能和总体稳定性。 我们的下一个重点领域将是改善使用多个模块时的用户体验。 来自我们更大用户群的反馈将有助于为我们的后续步骤提供信息。

那么,你应该做什么?

如果您使用 VS Code,则无需执行任何操作。 当您获得下一个 VS Code Go 更新时,gopls 将自动启用。

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

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

感谢

对于我们现有的用户,感谢您在我们第三次重写缓存层时的支持。 对于我们的新用户,我们期待听到您的体验报告和反馈。

最后,如果不提及 Go 工具社区的宝贵贡献,任何关于 Go 工具的讨论都是不完整的。 感谢您的冗长讨论、详细的错误报告、集成测试,最重要的是,感谢您的出色贡献。 最激动人心的 gopls 功能来自我们热情的开源贡献者,我们感谢您的辛勤工作和奉献精神。

了解更多

观看截屏视频,了解如何开始使用 gopls 和 VS Code Go,并查看 VS Code Go README 了解更多信息。

如果您想更详细地了解 gopls,请参阅 gopls README