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

之前的一篇文章里,我提到了在VSCode和JetBrains之间反复横跳的事情,并且还觉得VSCode挺香的,Go、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 gobrew search go@1.18brew install go@1.18go 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不香了 。
因为臭弟弟就是你自己 。

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


    推荐阅读