最近开始使用vscode做go的开发,在开发过程中遇到了很多vscode的问题,譬如终端里面没有go的版本信息,是vscode和zsh在macOS上的配合问题。通过使用bash终端解决了这个问题。
然后解决了这个问题产生了另外一个问题,成功切换了go的版本,但是gopls的版本没有切换成功。我们工作过程中有很多比较低版本的go,不兼容最新的gopls。
本文就来介绍一下如何实现自动切换gopls的版本
1. 下载指定版本的gopls
go get golang.org/x/tools/gopls@v0.14.2
命令来下载指定版本的gopls
2. 查看gopls的存储位置
命令 which gopls
能够展示你的默认gopls所在的位置,上面的指定版本的gopls下载就会覆盖这个文件
比方说我的路径是在 ~/Developer/go/bin/gopls
3. 创建多版本的gopls版本目录
创建目录 "~/gopls/v0.14.2/
,然后执行命令 cp ~/Developer/go/bin/gopls ~/gopls/v0.14.2/
将对应版本的gopls版本写入到指定目录
4. 重复上面1-3步骤
通过重复1-3步,拿到你所使用的go版本支持的最高版本的gopls。
版本的对应关系可以参见这里:https://github.com/golang/tools/tree/master/gopls#support-policy
最终文件夹的效果如下:
5. 在工程中设置
在工程的根目录下创建 ./.vscode/setting.json
, 写入下面的内容, 选择兼容的gopls版本
1 | { |