在升級到 1.11后, go加入了go module這一特性, 支持相對路徑的導入包,這樣在$GOPATH之外的地方也可以進行項目開發。
但是vscode中很多插件只能工作在 $GOPATH下, 其中最重要的代碼智能提示也是如此
代碼提示主要由 github.com/mdemsky/gocode 這個模塊負責, 為了支持go module, 要使用新的gocode模塊,項目地址為 github.com/stamblerre/gocode, 為了更新插件
-
將$GOPATH/bin 中的 gocode 可執行文件刪掉
-
go get -u -v github.com/stamblerre/gocode 獲取包, 這里是不能安裝的,有沖突
-
去到 $GOPATH/src/golang.org/x 這個目錄下, 刪除tools這個包,它和新版的 gocode不兼容,不要試圖 git pull獲取最新版,這個是被牆了的
-
從 https://github.com/golang/tools 下載最新的tools包,clone很慢就直接下載 zip 文件, 解壓到剛才原來的位置。
-
編譯安裝 stamblerre/gocode, go build -o $GOPATH/bin/gocode-gomod github.com/stamblerre/gocode或者直接到$GOPATH/src/github.com/stamblerre/gocode目錄下執行go build
到此, Vscode智能提示就可以正常工作了
轉自:
https://blog.csdn.net/richard_m_yang/article/details/100516891