W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
VS Code上的 Go 語言插件,是由微軟官方推出的。Go 語言插件,是VS Code推出插件 API 時的首批插件,直到現(xiàn)在,也依然由VS Code團隊成員進行維護開發(fā),項目地址是 https://github.com/microsoft/vscode-go 作為 VS Code 團隊維護的項目,GitHub issues 是它唯一的反饋渠道。要安裝這個插件,你可以在VS Code的插件視圖里搜索 Go,也可以通過插件市場進行下載。
VS Code也是 Go 團隊官方推薦的開發(fā)工具。
當你從插件市場安裝了 Go 插件后,重啟VS Code,Go 插件就會在你第一次打開 Go 文件的時候被啟動。
啟動后,如果你還沒有設置過 GOPATH 的話,VS Code會提示你,你既可以在自己的系統(tǒng)環(huán)境變量里添加 GOPATH,也可以在當前項目的配置文件里配置 GOPATH。
設置正確的 GOPATH 后,VS Code就知道安裝 Go 的 package 保存到哪個文件夾內了。
緊接著VS Code又跳出多個提示。這些提示是告訴你,如果想要在VS Code中使用自動補全、代碼跳轉等功能,你需要安裝額外的 Go 的 package。所以,這里我建議選擇 Install All,之后如果你對某個 package 的效果不滿意,也可以通過設置再進行修改的。
比如,在我的系統(tǒng)上,我將 GOPATH 設置為 /Users/penlv/code/prototypes/gopath。然后選擇 Install All 后,我就能在輸出面板里,看到 Go 插件將要安裝的 packages。
不過值得注意的是,如果上面的安裝失敗了,輸出窗口中會提供錯誤信息。因為,這一步操作,底層運行的命令行其實就是:
go get -u -v github.com/...
Go
像我就曾遇到了 Go 的版本太老,導致更新失敗的問題。如果你遇到了自己無法解決的問題,也可以到插件的 GitHub repository 留言,請注意要提供完整的信息,比如VS Code版本、插件版本以及 Go 的版本,以便更好地 toubleshoot。
首先,你可以在 Go 代碼中,進行代碼跳轉(Go To Definition)、自動補全(Auto Complete)以及獲取懸浮信息(Hover)。
Go 插件默認是借助 gocode、gogetdoc和 godef 分析代碼,然后提供這些信息的。
在編寫 Go 代碼時,經常會用到go build、go tool vet、golint等腳本去構建代碼,或者是對代碼進行檢測。Go 插件已經將這些功能集成到插件中了,你可以:
當你使用這些參數(shù)來自動觸發(fā)腳本時,Go 插件會將這些腳本的輸出結果進行分析,然后將錯誤和警告放入到問題面板中。
默認情況下,當保存代碼時,VS Code會自動給 Go 代碼進行格式化。如果你不喜歡這個功能,也可以通過 go.formatOnSave 來取消。
Go 插件同樣支持調試 Go 的代碼,而其底層的 debugger 則是 delve。如果你第一次使用 Go 插件時選擇了 Install All 安裝所有的 package,那么就無需再安裝任何的 package了。而如果你沒有全部安裝,那么你可能需要手動安裝 dlv 這個 package。
和之前我們介紹的 Node.js 調試一樣,如果沒有 launch.json 的話,VS Code會默認調試當前文件。
同樣,Go 插件也提供了多個調試的模板
VS Code的 Go 插件,默認是使用 gocode、godef 等 package 來提供智能語言服務的。不過 GO 插件中還有一個正在處于試驗階段的 Language Server (也就是 LSP 的實現(xiàn)),你可以通過設置 go.useLanguageServer 將其打開。但是這個 Language Server 并不支持 Windows,且處于試驗階段,關于更多的信息,請查看文檔
綜合我個人使用 Go 插件時候的體驗,以及 Go 插件維護者的分享,下面這些問題是新用戶經常會遇到的:
根據每年Go相關的 Survey 和官方數(shù)據,Go 社區(qū)的新晉用戶更傾向于使用VS Code來進行 Go 的編程。于是 Go 團隊決定親自書寫一套 Go 的 Language Server,以提升VS Code上 Go 的書寫體驗。上面我提到的 Language Server 是 SourceGraph 團隊實現(xiàn)的,Go 團隊可能不會基于它們的代碼進行修改,而是重起爐灶。對于官方團隊的投入,讓我對 Go 在VS Code里前景非常有信心。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: