使用visual studio code開發Go程序
在visual studio code 1.0發布之前我也曾多次嘗試使用visual studio code開發Go程序,但是都放棄了,一是Go的插件還沒發布或者不完善,而是vscode還不是那么方便,所以我一直使用atom + goplus + godebug編寫Go的代碼,而且用起來也非常的順手方便。 現在vscode 1.0發布了,而且支持10種本地化語言,我嘗試使用它編寫Go程序,功能和性能都不錯,所以目前atom和vscode都是我的菜。
本文簡單介紹一下使用vscode開發Go的一些配置,速覽vscode + Go 的功能。
調整本地語言
vscode安裝上后會根據你的操作系統的本地化設置來配置你的visual studio code采用的語言,所以很可能你安裝上之后顯示為簡體中文。目前vscode 1.0支持下面10種語言:
- English (US) en-US
- 簡體中文 zh-CN
- 繁體中文 zh-TW
- 法語 fr
- 德語 de
- 意大利語 it
- 日語 ja
- 韓語 ko
- 俄語 ru
- 西班牙語 es
我還是習慣于英語環境,所以調整本地化語言為英語。如果想調整語言,使用 "ctrl + shift + P"打開命令面板,輸入 "Conf" 就會顯示出 “Configure Language”命令,點擊這個命令就會新建或者打開locale.json文件,在這個文件中你就可以設置你的locale 語言了:
{
"locale":"en-US"
}
我把它改成英文顯示,重啟vscode就顯示英文了。
安裝Go插件
要開發Go程序,你需要安裝Go的插件。 "ctrl + shift + P"打開命名面板,然后輸入 "ext install Go"就會安裝Go插件了,安裝完后提示你重啟vscode,就可以編寫Go程序了。
它支持以下功能:
- 彩色高亮Colorization
- 自動完成列表 (using gocode)
- 方法和類的簽名幫助信息 (using godoc)
- 代碼片段
- 快速信息 (using godef)
- 查找定義 (using godef)
- 查找引用 (using guru)
- 文件大綱 (using go-outline)
- 工作區符號搜索 (using go-symbols)
- 重命名 (using gorename)
- 保存時編譯 (using go build and go test)
- 格式化 (using goreturns or goimports or gofmt)
- 增加導入 (using gopkgs)
- 調試 [部分實現] (using delve)
它的調試功能值得稱贊,Go總算也有一個方便的調試功能呢,加上斷點后可以斷點所在的堆棧信息,變量以及監控自定義的表達式。(atom + godebug也可以實現這個功能,它也通過delve進行調試)
在vscode左邊工具欄的第四個圖標就可以打開調試窗口,點擊某行可以方便的在代碼中增加斷點。
當然,在第一次編寫Go代碼的時候,可能需要安裝所需的工具,如guru、go-symbols、goreturns等。如果設置好GOPATH環境變量,啟動vscode,打開一個go代碼文件,在右下角你會看到 "Analysis Tools Missing"的提示,點擊它就會自動安裝這些所需的工具。你也可以手工安裝它們:
go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/lukehoban/go-outline
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v github.com/tpng/gopkgs
go get -u -v github.com/newhook/go-symbols
go get -u -v golang.org/x/tools/cmd/guru
Go插件設置
vscode的Go插件有一些可以定制化的配置,你可以打開user preferences 或者 workspace settings來配置。如果想對所有的Go項目有效,就修改user preferences。
點擊菜單 "File -> Preferences -> User Settting"打開窗口,左邊的窗口是 vscode缺省配置,右邊的窗口可以添加我們自己的設置。對于Go插件,可以添加如下的設置:
{
"go.buildOnSave": true,
"go.lintOnSave": true,
"go.vetOnSave": true,
"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插件的一些行為和變量。比如你可以改格式化工具為"gofmt",如 "go.formatTool": "gofmt"。
在寫Go代碼的時候,很多工具只有在編寫的文件保存的時候才會執行,比如格式化,vet,lint、cover、test等,所以定時的保存文件可以觸發這些動作,因此你可以在這個配置文件中加上下面的配置:
"files.autoSave": "afterDelay"
它可以定時的保存文件。
快捷鍵
你可以通過菜單 "File -> Preferences -> Keyboard Shortcuts"查看和定義快捷鍵。左邊的窗口顯示缺省的快捷鍵設置,但是不是很直觀,建議看這個鏈接,它分門別類的介紹了每個快捷鍵的功能。
一般涉及到快捷鍵,我都會對其中的一個快捷鍵特別的關注,就是 "ctrl + space",這個鍵一般用來設置觸發提示的功能,但是和輸入法切換的快捷鍵沖突,所以我會重新定義它。在剛才打開的右邊窗口中增加定義:
{
"key": "ctrl+j",
"command": "editor.action.triggerSuggest",
"when": "editorTextFocus"
}
同時我還增加了一個自己習慣的快捷鍵,就是格式化代碼的快捷點,默認設置為 "shift+alt+f",我新增加了一個快捷鍵:
{
"key": "ctrl+alt+f",
"command": "editor.action.format",
"when": "editorTextFocus"
}
以及執行測試的快捷鍵
{
"key": "ctrl+alt+t",
"command": "go.test.cursor",
"when": "editorTextFocus"
},
{
"key": "ctrl+alt+p",
"command": "go.test.package",
"when": "editorTextFocus"
}
右邊窗口的的右下角有對話框可以幫助你增加快捷鍵,當然你也可以想我這樣一樣手工添加。
其它功能
Go插件和vscode工具配合的很好,比如調用格式化代碼的快捷鍵就可以進行格式化,不必在保存的時候就可以執行。你也可以在命令面板中輸入 "!"查看警告和錯誤信息。
類似Sublime text,命令面板非常的有用, "ctrl + p"打開它后輸入 "?"可以查看它的不同的功能。
vscode的狀態欄也非常的有用,插件信息、git信息,文檔信息都會在這里顯示。
你可以改變代碼高亮的風格。"ctrl + shift + P"打開命令面板,輸入 "theme"會顯示 "Preferences:Color Theme",點擊它會顯示可用的theme。 你還可以在visual studio marketplace上你可以找到更多的theme,比如我使用的[Seti Modified],和atom的保持一致。
相比atom,當然vscode還有不足的地方,比如打開多個文件,它們不會以tab的顯示多窗口,你還需要"ctrl + tab"再選擇其它的文件。沒有安裝Python但是還總提示Python插件需要升級等。但是也有比atom功能強大的地方,比如 "ctrl" +鼠標點擊就可以查看方法的定義,性能可能比atom要好,盡管在我的機器上還沒看出太大的性能區別。
本文只是粗略的展示了vscode和Go插件的功能,相信更強大的功能還有待在實踐中發掘和學習。
來源:鳥窩