步驟
1. 始
Golang 語言開發選擇一款合適的編輯器,能加速你敲字的靈感,這里推薦微軟的 Visual Studio Code,簡稱 vscode。
2. 安裝 go 插件
首先需要安裝 go 語言插件,在 vscode 擴展中搜索 “go”,如下圖,下載安裝go插件


3. 設置 GOPROXY
如果想要 vscode 在 Go語言開發的時候為我們提供諸如代碼提示、代碼自動補全等功能,需要安裝 go tools,但是安裝 tools 需要設置 goproxy,否則會因為網絡問題無法下載 tools 工具。
在此之前請先設置GOPROXY,打開終端執行以下命令:
go env -w GOPROXY=https://goproxy.cn,direct
4. 安裝 Go語言開發工具包
安裝 Golang Tools,按下 Ctrl/Cmd+P,輸入> Go: Install/Update Tools,然后回車,選擇你要安裝的 tools 插件


5. 插件介紹
| tools 名稱 | 用途 | |
|---|---|---|
| gocode | github.com/mdempsky/gocode | 代碼自動完成 |
| gopkgs | github.com/uudashr/gopkgs/v2/cmd/gopkgs | 該工具為未導入的軟件包提供自動補全功能 |
| go-outline | github.com/ramya-rao-a/go-outline | 此工具提供了文檔大綱功能以及當前文件功能中的轉到符號。 |
| go-symbols | github.com/acroca/go-symbols | 此工具提供了工作空間中的轉到符號功能。 |
| guru | golang.org/x/tools/cmd/guru | 該工具提供查找參考和查找接口實現功能。 它也可用於通過設置提供轉到定義 "go.docsTool"。 |
| gorename | golang.org/x/tools/cmd/gorename | 此工具提供了重命名符號功能。 |
| gotests | github.com/cweill/gotests/... | 該工具為Go: Generate Unit Tests命令集提供支持。 |
| gomodifytags | github.com/fatih/gomodifytags | 該工具支持Go: Add Tags to Struct Fields和Go: Remove Tags From Struct Fields命令。 |
| impl | github.com/josharian/impl | 該工具為Go: Generate Interface Stubs命令提供支持。 |
| fillstruct | github.com/davidrjenni/reftools/cmd/fillstruct | 該工具提供了對Go: Fill struct命令的支持。 |
| goplay | github.com/haya14busa/goplay/cmd/goplay | 該工具為Go: Run on Go Playground命令提供支持。 |
| godoctor | github.com/godoctor/godoctor | 該工具提供了重構功能。 它不支持Go模塊,因此我們希望 gopls它將提供此功能(golang / go#37170)。 |
| dlv | github.com/go-delve/delve/cmd/dlv | 這是Go語言的調試器。它用於提供此擴展的調試功能。 |
| gocode-gomod | github.com/stamblerre/gocode | |
| goreturns | github.com/sqs/goreturns | |
| golint | golang.org/x/lint/golint |
6. 打開vscode設置


7. settings.json 配置
"go.inferGopath": true,
"go.autocompleteUnimportedPackages": true,
"go.gocodePackageLookupMode": "go",
"go.gotoSymbol.includeImports": true,
"go.useCodeSnippetsOnFunctionSuggest": true,
"go.useCodeSnippetsOnFunctionSuggestWithoutType": true,
"go.docsTool": "guru",

8. settings.json 參數介紹:
8.1 跳轉到定義
- go.docsTools:這里有三個選項,默認使用 gogetdoc,不知為何我這里選擇之后無法使用
ctrl/cmd +鼠標左鍵點擊跳轉函數或者源碼,於是我選擇了 guru

9. 效果

參考鏈接:
https://github.com/microsoft/vscode-go
https://github.com/golang/vscode-go
https://github.com/golang/vscode-go/blob/master/docs/tools.md
