前往 Visual Studio Code
透過使用 Visual Studio Code 的 Go 擴充功能,您可以取得諸如 IntelliSense、程式碼導覽、符號搜尋、測試、偵錯以及更多功能,這些功能將在 Go 開發中為您提供協助。
您可以從 VS Code 市集安裝 Go 擴充功能。
觀看「VS Code Go 入門」,以了解如何使用 VS Code Go 建置您的第一個 Go 應用程式。
本文僅說明 Go 擴充功能提供功能的一個子集。如需完整且最新的支援功能清單,請參閱擴充功能的文件。
IntelliSense
IntelliSense 功能由 Go 語言伺服器 gopls 提供,並由 Go 團隊維護。您可以使用 gopls
設定來設定 gopls
的行為。
語意語法醒目提示
為了獲得比預設的 TextMate 型語法醒目提示更好的語法醒目提示,我們建議啟用語意醒目提示,方法是開啟 Gopls 的 ui.semanticTokens
設定。
"gopls": { "ui.semanticTokens": true }
自動完成
當您在 Go 檔案中輸入時,您可以看到 IntelliSense 為您提供建議的完成項目。這甚至適用於目前、已匯入和尚未匯入套件中的成員。只需輸入任何套件名稱,後跟 .
,您就會獲得對應套件成員的建議。
提示:使用 ⌃空白鍵 (Windows、Linux Ctrl+空白鍵) 以手動觸發建議。
滑鼠停留資訊
將滑鼠停留在任何變數、函式或結構上,將為您提供有關該項目的資訊,例如文件、簽章等。
簽章說明
當您在呼叫函式時開啟 (
時,彈出視窗會提供函式的簽章說明。當您繼續輸入參數時,提示 (底線) 會移至下一個參數。
提示:當游標位於函式呼叫中的
()
內時,使用 ⇧⌘空白鍵 (Windows、Linux Ctrl+Shift+空白鍵) 以手動觸發簽章說明。
程式碼導覽
程式碼導覽功能可在編輯器中的內容功能表中找到。
- 前往定義 F12 - 前往類型定義的原始程式碼。
- 前往類型定義 - 前往定義符號的類型。
- 查看定義 ⌥F12 (Windows Alt+F12、Linux Ctrl+Shift+F10) - 帶出一個查看視窗,其中包含類型定義。
- 前往參考 ⇧F12 (Windows、Linux Shift+F12) - 顯示類型的所有參考。
- 顯示呼叫階層 ⇧⌥H (Windows、Linux Shift+Alt+H) - 顯示從函式發出或傳入函式的所有呼叫。
- 前往實作 ⌘F12 (Windows、Linux Ctrl+F12) - 帶出一個查看視窗,其中包含介面的所有實作清單 (如果使用介面類型符號觸發),或類型實作的介面 (如果使用具體類型符號觸發)。
- 尋找所有實作 - 顯示介面的所有實作 (如果使用介面類型符號觸發),或類型實作的介面 (如果使用具體類型符號觸發)。
您可以使用命令面板中的前往符號命令 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 透過符號搜尋進行導覽。
- 前往檔案中的符號 - ⇧⌘O (Windows、Linux Ctrl+Shift+O)
- 前往工作區中的符號 - ⌘T (Windows、Linux Ctrl+T)
您也可以使用Go: 切換測試檔案命令在 Go 檔案及其測試實作之間來回導覽。
建置與診斷
Go 語言伺服器 (gopls
) 會偵測工作區中找到的建置和 vet 錯誤。執行上述任何/所有操作的錯誤和警告將以紅色/綠色波浪線顯示在編輯器中。這些診斷也會顯示在問題面板中 (檢視 > 問題)。
您可以使用 go.lintOnSave
設定新增其他語法檢查,並使用 go.lintTool
設定設定您選擇的語法檢查工具 (staticcheck
、golangci-lint
或 revive
)。
格式化
您可以使用 ⇧⌥F (Windows Shift+Alt+F、Linux Ctrl+Shift+I) 格式化 Go 檔案,或從命令面板或編輯器中的內容功能表執行格式化文件命令。
預設情況下,格式化會在您儲存 Go 檔案時執行。您可以針對 [go]
語言識別碼將 editor.formatOnSave 設定為 false
來停用此行為。您可以使用您的 JSON 設定檔來變更此設定。
"[go]": {
"editor.formatOnSave": false
}
當您為 Go 檔案啟用了多個格式器時,您可以選取 Go 擴充功能作為預設格式器。
"[go]": {
"editor.defaultFormatter": "golang.go"
}
格式化由 gopls
提供。如果您想要 gofumpt
樣式的格式化,您可以將 gopls
設定為使用 gofumpt
。
"gopls": {
"formatting.gofumpt": true
}
測試
VS Code 測試 UI 和編輯器 CodeLens 元素允許使用者輕鬆地執行給定函式、檔案、套件或工作區的測試、基準測試、設定檔。
或者,相同的功能可透過一組命令取得
您可以在命令面板中輸入「Go: test」來探索許多與測試相關的命令。
上述前三個可用於使用 gotests
為目前套件、檔案或游標位置的函式產生測試骨架。最後幾個可用於使用 go test
在目前套件、檔案或游標位置執行測試。還有一個用於取得測試涵蓋率的命令。
您可以設定擴充功能以使用以下項目執行測試並計算測試涵蓋率
go.testOnSave
go.coverOnSave
go.testFlags
匯入套件
擴充功能預設會組織匯入並移除未使用的匯入。如需不同的行為,您可以依照 這些指示覆寫每個語言的預設設定。
執行命令Go: 新增匯入以取得可以匯入到您的 Go 檔案的套件清單。選擇一個,它將新增到您的 Go 檔案的匯入區塊中。
重構
選取要重構的區域 (例如變數、函式主體等)。按一下選取區域中出現的程式碼動作燈泡圖示,或從 VS Code 內容功能表中選取重構...或重新命名符號 (F2)。
偵錯
Go 擴充功能可讓您透過使用 Delve 偵錯工具來偵錯 Go 程式碼。
閱讀 在 VS Code 中偵錯 Go 程式以了解設定步驟、支援的功能、組態、遠端偵錯的資訊和疑難排解指南。如需一般偵錯功能,例如檢查變數、設定中斷點以及其他與語言無關的活動,請檢閱 VS Code 偵錯。
Go 特有的一些功能包括
- 本機和遠端偵錯
- 使用 Delve 的運算式語法進行資料檢查
- 使用偵錯主控台中的
dlv
命令進行動態組態變更和檢查選項 - 能夠隱藏/顯示系統 goroutine (使用
hideSystemGoroutines
組態) - 反組譯碼檢視支援 (在您的原始程式碼上按一下滑鼠右鍵,然後選取開啟反組譯碼檢視)
- 實驗性函式呼叫、核心檢查、Mozilla
rr
支援
後續步驟
這是一個簡短的概觀,展示了 VS Code 中 Go 擴充功能的功能。如需更多資訊,請參閱 Go 擴充功能 README 中提供的詳細資訊。
若要隨時掌握 Go 擴充功能的最新功能/錯誤修正,請參閱 CHANGELOG。
如果您有任何問題或功能要求,請隨時將其記錄在 Go 擴充功能 vscode-go 儲存庫中。
如果您想進一步了解 VS Code,請嘗試以下主題