VS Code Go 擴充功能為 Go 程式語言提供了豐富的語言支援。
Visual Studio Code 1.75 或更高版本(或與 VS Code 1.75+ API 相容的編輯器)
轉到 1.21 或更高版本。
歡迎! ??
無論您是 Go 新手還是經驗豐富的 Go 開發人員,我們希望此擴充功能能夠滿足您的需求並增強您的開發體驗。
如果尚未安裝 Go 1.21 或更高版本,請安裝。
安裝 VS Code Go 擴充功能。
開啟任何 Go 檔案或 go.mod 檔案即可自動啟動擴充。 Go 狀態列出現在視窗的右下角,並顯示您的 Go 版本。
此擴充功能取決於go
、 gopls
(Go 語言伺服器)和可選工具(取決於您的設定)。如果gopls
遺失,擴充功能將嘗試安裝它。 Go 版本旁邊的 ⚡ 符號表示語言伺服器正在運行,您可以開始使用了。
(安裝缺少的工具)
你準備好出發了嗎:-)???
探索 VS Code Go 擴充功能的更多功能。
查看設定文件和進階主題以自訂擴充功能。
查看工具文檔,了解 VS Code Go 擴充功能所依賴的工具的完整清單。您可以使用「前往:安裝/更新工具」來安裝其他工具並更新它們。
使用一般故障排除和調試故障排除指南解決問題。
針對擴充功能的問題提出問題。
發起 GitHub 討論或在 Stack Overflow 上取得協助。
在 go.dev/learn 和 golang.org/help 上探索 Go 語言資源。
如果您是 Go 新手,本文將概述 Go 程式碼組織和基本go
指令。觀看“VS Code Go 入門”,了解如何使用 VS Code Go 建立您的第一個 Go 應用程式。
IntelliSense - 在您鍵入時顯示符號結果。
代碼導航 - 跳到或查看符號的聲明。
程式碼編輯 - 支援已儲存的片段、格式和程式碼組織以及匯入的自動組織。
診斷 - 在您鍵入或儲存時顯示建置、審查和 lint 錯誤。
增強對測試和調試的支持
有關更多詳細信息,請參閱完整功能細分。
(程式碼完成和簽名幫助)
除了整合編輯功能之外,此擴充功能還提供了多個用於處理 Go 檔案的命令。您可以透過開啟命令面板(在 Linux/Windows 上為Ctrl+Shift+P
,在 Mac 上Cmd+Shift+P
),然後輸入命令名稱來存取其中任何一個。請參閱此擴充功能提供的命令的完整清單。
(切換測試檔)
為了更好地語法突出顯示,我們建議透過開啟 Gopls 的ui.semanticTokens
設定來啟用語義突出顯示。 "gopls": { "ui.semanticTokens": true }
VS Code Go 擴充支援GOPATH
和 Go 模組模式。
Go 模組用於管理最新版本 Go 中的相依性。模組取代了基於GOPATH
的方法來指定在給定建置中使用哪些來源文件,並且它們是 go1.16+ 中的預設建置模式。我們強烈建議以模組模式進行 Go 開發。如果您正在處理現有項目,請考慮遷移到模組。
與傳統的GOPATH
模式不同,模組模式不要求工作空間位於GOPATH
下,也不要求使用特定的結構。模組由 Go 原始檔的目錄樹定義,樹的根目錄中有一個go.mod
檔。
您的專案可能涉及一個或多個模組。如果您正在使用多個模組或不常見的專案佈局,則需要使用工作區資料夾來設定工作區。有關更多信息,請參閱支援的工作區佈局文件。
如果您想儘早存取新功能和錯誤修復,可以使用預發布擴充功能。遵循 vscode 的約定,我們使用擴展版本號的次要版本來區分穩定版本和預發布版本(預發布版本為0.ODD_NUMBER.patch
,穩定版本為0.EVEN_NUMBER.patch
)。
要安裝預發布版本,請使用下拉清單選擇“安裝預發布版本”,或者如果已經安裝了 Go 擴展,請使用 Visual Studio Code 擴展管理中的“切換到預發布版本”選項頁。有關此機制的更多詳細信息,請參閱 Visual Studio Code 的文檔。
VS Code Go 擴充功能依靠 Go 遙測來了解有關擴充功能和語言伺服器 ( gopls
) 的效能和穩定性的見解。 Go Telemetry 資料上傳預設是停用的,可以使用以下命令啟用:
go run golang.org/x/telemetry/cmd/gotelemetry@latest on
啟用遙測後,語言伺服器會將指標和堆疊追蹤上傳到 telemetry.go.dev。您可以透過執行以下命令來檢查收集了哪些資料並可以上傳哪些資料:
go run golang.org/x/telemetry/cmd/gotelemetry@latest view
如果我們得到足夠的採用,這些數據可以顯著推進 Go 擴展開發的步伐,並幫助我們滿足更高的可靠性標準。例如:
即使使用 VS Code 中的半自動崩潰報告,我們也發現有幾個崩潰數週或數月都沒有報告。
即使使用一組基準測試,某些效能回歸也不會出現在我們的基準測試環境中(例如下面提到的完成錯誤!)。
即使有很多關於如何改進 gopl 的好主意,我們的資源也是有限的。遙測可以幫助我們確定哪些新功能最重要,以及哪些現有功能沒有被使用或運作不佳。
這些只是遙測可以改進 gopl 的幾種方法。遙測部落格文章系列包含更多內容。
Go 遙測的設計是透明且保護隱私的。了解更多信息,請訪問 https://go.dev/doc/telemetry。
Go 擴充功能由 Go 工具團隊的工程師維護,他們積極監控 VS Code Go 和 Go 問題追蹤器。
我們僅支援該擴充功能的最新穩定版本和預發布版本。
Go 擴充功能遵循 Go 發布策略,這意味著它正式支援最新的兩個主要 Go 版本。 Go 團隊竭盡全力支持最後三個主要 Go 版本。
Go 擴充功能依賴gopls
和dlv
等工具來實現其核心功能,並且它們有自己的發布策略和時間表。我們僅針對這些工具的最新版本進行測試。
如果您需要使用舊版的 Go,請檢查相容性頁面並手動安裝相容版本的擴充功能和工具。
我們歡迎您的貢獻,並感謝您為改善 VS Code 中的 Go 開發體驗所做的努力。如果您想協助開發 VS Code Go 擴展,請參閱我們的貢獻指南,了解如何在本地建置和運行 VS Code Go 擴充功能並為專案做出貢獻。
該項目遵循 Go 社區行為準則。如果您遇到與行為相關的問題,請發送電子郵件至[email protected]。
麻省理工學院