<返回更多

VSCode疑案:Go代码智能提示咋没了呢?

2022-06-29    BlackJ个啥
加入收藏

之前的一篇文章里,我提到了在VSCode和JetBrains之间反复横跳的事情,并且还觉得VSCode挺香的,Go、Python/ target=_blank class=infotextkey>Python、JAVA等语言在VSCode中都可以获取到代码智能提示,不用死记硬背API了。没想到这么快就出事儿了,Go语言打脸了。Go啊,你咋就这么狗呢?

VSCode疑案:Go代码智能提示咋没了呢?

 

事情还原

开始的时候,我安装了go1.17版本,并在vscode安装了go的插件。建个.go文件,敲敲代码还是有智能提示的,比如敲完fmt后,就会自动引入fmt包,按下`.`按键,就会给出fmt下有哪些函数可以使用。所以这个时候,那叫一个丝滑啊。

VSCode疑案:Go代码智能提示咋没了呢?

图片来自于vsocde编辑器

后来听说go1.18出来了,还有泛型可以玩玩儿,我就想安装go1.18试试。但我又懒得去把以前的旧版本删除,再从官网下载安装包,就使用homebrew安装go1.18。

brew search go
brew search go@1.18
brew install go@1.18
go version

安装之后,确实是1.18版本,但是我发现vscode敲代码没有智能提示了。

卧擦,咋回事儿了呢?升个级,还生出毛病了呢?

问题排查

起初我以为是使用go module的项目管理模式后,GOPATH就被忽视了,vscode于是就无法给出提示了。但我仔细一想,不对啊,之前用go1.17的时候也是这样的啊,也没啥事儿呀。

要不试试重启大法吧。我用vscode的`Command Palette...`,执行Reload Window。果不其然,报错了!说是在PATH和GOROOT中,找不到go二进制程序。

这回好像懂了一点,我本地把go的版本升级了,但是vscode并不知道啊。诡异的是,报错中显示了PATH具体指的是哪些路径,/usr/bin, /usr/local/bin等路径列在其中,那么为啥就是找不到go二进制文件呢?

我这才想到,go1.17是下载官方安装包安的,那时候go二进制文件确实存在于PATH中,可是我用的是homebrew安装的1.18啊。我一查看,好家伙,go1.18安装在了/opt/homebrew/bin下边。所以说,我要手动设置相关路径,明确地告诉vscode。

go env

直接找到 GOROOT和GOPATH的值,填入vscode->settings->extensions->Go->Gopath和Goroot。

VSCode疑案:Go代码智能提示咋没了呢?

 

OK,再用出重启大招,重新加载vscode,敲敲Go代码。

Yes!熟悉的味道回来了,智能提示又回来啦,哈哈哈哈哈哈。

 

结语

喜新厌旧,总是要付出点代价的;

有点麻烦了,别怪vscode不香了。

因为臭弟弟就是你自己。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>