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 安全
部落格索引