Go 部落格
預設情況下,VS Code Go 擴充功能中的 Gopls
我們很高兴地宣布,VS Code Go 擴充功能從現在開始預設啟用 gopls 語言伺服器 ,將提供更強大的 IDE 功能,並能更好地支援 Go 模組。

(gopls
提供 IDE 功能,例如智慧型自動完成功能、特徵提示、重構和工作區符號搜尋。)
當 Go 模組 兩年前釋出時,徹底改變了 Go 開發人員工具生態。像 goimports
和 godef
等工具過去仰賴程式碼儲存在 $GOPATH
的事實。當 Go 團隊開始改寫這些工具以搭配模組使用時,我們立刻意識到需要更系統性的方法來彌補差距。
最後我們開始製作單一的 Go 語言伺服器 gopls
,它為任何相容的編輯器前端提供 IDE 功能,例如自動完成、格式化和診斷。這個持久且統一的伺服器是 基本轉變,遠離早期指令列工具的集合。
除了處理 gopls
之外,我們還尋求其他的方式來建立一個穩定的編輯器工具生態系統。去年,Go 團隊接下了 VS Code 的 Go 擴充功能 的責任。作為此工作的一部分,我們改善了此擴充功能與語言伺服器的整合,自動化了 gopls
更新,重新排列和說明 gopls
設定,改善了疑難排解工作流程,並且藉由一份問卷來徵求回饋。我們也持續培養一個活躍的使用者和貢獻者社群,他們幫助我們改善 Go 擴充功能的穩定性、效能和使用者體驗。
公告
1 月 28 日標誌著 gopls
和 VS Code Go 兩大旅程的重大里程碑,因為 gopls
現在已預設啟用於 VS Code 的 Go 擴充功能中。
為了準備這項切換,我們花了很長時間來反覆運算 gopls
的設計、功能和使用者體驗上,並專注於改善效能和穩定性。有一年多的時間,在 Vim、Emacs 和其他編輯器的多數外掛中,gopls
都是預設值。我們已有 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 說明檔 以取得更多資訊。
如果您想更詳細地了解 `gopls`,請查看 `gopls` 說明檔。
下一篇文章:Go 1.16 已發行
上一篇文章:Go 中的指令 PATH 安全性
部落格索引