[TOC]
注意:本文檔默認已經(jīng)安裝好go語言環(huán)境且已經(jīng)設置好相應環(huán)境變量
1. 安裝vscode
根據(jù)自身系統(tǒng)下載相應環(huán)境的vscode并安裝
下載地址:點擊此處前往下載
2. 安裝go擴展插件
在vscode的插件商店里可以直接下載go語言的相關插件走孽,可采用以下幾種方式
- 新建一個后綴為.go 的后綴文件,此時vscode會自動彈出提示問是否需要安裝擴展,點擊安裝即可
- 點擊左側(cè)第五個菜單欄闭翩,即可進入vscode插件商店,輸入
go
后搜索,選搜索結(jié)果第一個安裝即可
- 輸入
Ctrl+Shift+X
或Cmd+Shift+X
打開vscode擴展商店蜂挪,同上一種方法輸入go
后搜索重挑,選搜索結(jié)果第一個安裝即可
3. 安裝go tools工具
當vscode go語言擴展插件裝好后,打開go文件會彈出如下提示
點擊上邊的安裝全部即可棠涮,如果沒有彈出該提示攒驰,也可點擊右下角的Analysis Tools Missing
,然后同意安裝即可故爵。這幾個工具的主要作用如下:
go get -u -v github.com/ramya-rao-a/go-outline
解析go文件中的函數(shù)定義玻粪,結(jié)構(gòu)體定義,依賴的包等信息并以json格式的數(shù)據(jù)輸出诬垂,用于生成符號表
go get -u -v github.com/acroca/go-symbols
搜索指定目錄的符號表中指定的符號
go get -u -v github.com/nsf/gocode
自動填充提示
go get -u -v github.com/rogpeppe/godef
尋找指定符號在go文件中的位置
go get -u -v golang.org/x/tools/cmd/godoc
根據(jù)源碼注釋生成文檔
go get -u -v github.com/zmb3/gogetdoc
解析go源碼劲室,收集注釋的位置,類似于go-outline结窘,從而到達在文件中直接定位注釋位置的目的
go get -u -v github.com/golang/lint/golint
類似pylint很洋,用以檢查代碼規(guī)范
go get -u -v github.com/fatih/gomodifytags
提供tags管理,可以對struct的tag增刪改
go get -u -v github.com/uudashr/gopkgs/cmd/gopkgs
列出可導入的包列表隧枫,主要用于包導入時的提示功能
go get -u -v golang.org/x/tools/cmd/gorename
用于安全的修改名稱(對引用到的地方也同步修改)
go get -u -v github.com/cweill/gotests/...
用于用例測試
go get -u -v sourcegraph.com/sqs/goreturns
當函數(shù)定義有返回值但返回值未設置時喉磁,自動添加返回對應類型的默認值
go get -u -v golang.org/x/tools/cmd/guru
代碼編輯器集成工具,用于智能顯示一些提示
go get -u -v github.com/josharian/impl
自動生成接口實現(xiàn)代碼框架的工具官脓,比如impl ‘f *File’ io.ReadWriteCloser 會自動出現(xiàn)io.ReadWriteCloser需要實現(xiàn)的接口
go get -u -v github.com/haya14busa/goplay/cmd/goplay
可以理解為https://play.golang.org/ 的一個客戶端协怒,可以將代碼發(fā)送到https://play.golang.org/執(zhí)行
以上工具都已經(jīng)被golang擴展插件集成進去了,不需要自己手動去使用卑笨,只需要通過配置控制即可孕暇,具體的配置項可參考后面的 配置項目工程
有些工具第一次安裝可能會失敗,后面會給出詳細的原因赤兴,大都是因為依賴庫被墻的原因妖滔,如圖所示:
從錯誤原因可以看出,無法下載的庫都是golang.org/x/tools
, 這是因為golang.org被墻的原因桶良,此時最好的方案是翻墻座舍,如果沒有翻墻條件,由于go語言開發(fā)者將這些庫在github上做了鏡像陨帆,我們也可直接去github上手動下載這些庫曲秉,具體操作如下:
1. 前往go語言的github官方倉庫,選擇所需要的庫手動下載或通過歧譬,此處我們?nèi)钡氖莟ools庫岸浑,因此下載tools即可](https://github.com/golang,選擇所需要的庫下載瑰步,此處我們?nèi)钡氖莟ools庫,因此下載tools即可)
2. 在GOPATH的src目錄下璧眠,新建golang.org/x/tools的目錄缩焦,可將tools軟鏈接到下載的tools目錄读虏,也可直接將下載的tools目錄放到golang.org/x目錄下
3. 再次安裝go tools工具,此時如無意外剩下的幾個包已經(jīng)可以成功安裝
4. 安裝delve調(diào)試工具
golang官方推薦的調(diào)試例子默認為gdb袁滥,但是gdb調(diào)試go程序會遇到goroutine的各類問題盖桥,因此現(xiàn)在一般推薦用delve,安裝方法如下:
- 對于windows系統(tǒng)题翻,直接使用
go get
即可
$ go get github.com/derekparker/delve/cmd/dlv
- 對于linux系統(tǒng)也類似揩徊,只不過get安裝后可再將二進制文件拷貝到系統(tǒng)bin目錄
$ go get github.com/derekparker/delve/cmd/dlv
$ cd github.com/derekparker/delve
$ make install
- mac系統(tǒng)有兩種方式,第一種是直接通過brew安裝
$ brew install go-delve/delve/delve
但是這種方式目前不支持mac最新的macOS 10.13嵌赠,第二種方式同上塑荒,直接通過go get
方式安裝,只不過安裝前需要先安裝xcode的develop tools
$ xcode-select --install
$ go get -u github.com/derekparker/delve/cmd/dlv
$ cd github.com/derekparker/delve
$ make install
<span id="workspace_config">5. 配置項目工程</span>
go語言擴展插件有許多個性化配置姜挺,可以通過首選項設置-->設置
看到所有支持的設置項齿税,如下圖
當需要修改配置項時,只需要在右邊的用戶設置或工作區(qū)設置中填入即可覆蓋默認配置炊豪,用戶設置和工作區(qū)設置的區(qū)別在于凌箕,如果想要配置項針對所有的包括未來新建的工程都生效,那么配置在用戶設置词渤,如果僅僅需要針對當前工程進行設置牵舱,那么寫入工作區(qū)設置。這里簡單介紹幾個配置項缺虐。
{
"go.buildOnSave": "workspace",
"go.lintOnSave": "workspace",
"go.vetOnSave": "workspace",
"go.buildFlags": [],
"go.lintFlags": [],
"go.vetFlags": [],
"go.coverOnSave": false,
"go.useCodeSnippetsOnFunctionSuggest": false,
"go.formatOnSave": true,
"go.formatTool": "goreturns",
"go.goroot": "C:/Go",
"go.gopath": "C:/gopath"
}
- go.buildOnSave: 當保存時自動編譯仆葡,可選項為 ‘workspace’、‘package’志笼、‘off'沿盅,分別表示自動編譯工作區(qū),自動編譯包和關閉
- go.lintOnSave: 當保存時靜態(tài)檢查纫溃,可選項為'workspace'腰涧、'package'、‘off’紊浩,含義同上
- go.vetOnSave
- go.buildFlags: 編譯選項
- go.lintFlags: 代碼靜態(tài)檢查選項
- go.coverOnSave: 若為true窖铡,將自動使用
go test -coverprofile
執(zhí)行用例測試 - go.useCodeSnippetsOnFunctionSuggest 是否自動填充函數(shù)參數(shù)以及括號等
- go.formatOnSave: 保存時自動格式化代碼
- go.formatTool: 格式化代碼時使用的插件工具,可選項為
gofmt
,goimport
,goreturns
- go.goroot: 設置GOROOT環(huán)境變量坊谁,當環(huán)境變量已經(jīng)設置時可不配置
- go.gopath: 本配置項將覆蓋環(huán)境變量中的GOPATH费彼,需要格外注意