我一直是用 VS Code 做为 Go 语言的 IDE,使用的是官方的 Go 扩展, 但在使用过程当中发现有时候代码提示不够智能, 或者说基本没有提示.git
Go 扩展默认是使用大量的 Go 工具来提供各类功能的, 每一个工具提供某个方面的能力, 好比代码提示是依靠 gocode 的.github
不过微软在开发 VS Code 过程当中, 定义一种协议, 语言服务器协议, Language Server Protocol.golang
这但是个好东西, 若是你须要开发编辑器或 IDE, 就不须要再为每种语言实现诸如自动完成, 代码提示等功能了, 直接利用 语言服务器协议 就好了.json
gopls 就是官方的语言服务器, 当前处于 alpha 状态.vim
打开 VS Code 的设置, 搜索 go.useLanguageServe
, 并勾选上. 默认状况下, Go 扩展会提示你安装 gopls.bash
若是长时间安装不上, 能够尝试手动安装, 官方安装指南.服务器
另外也有多是网络的问题, 直接去 github.com/golang/tool… 下载, 而后使用 go isntall github.com/golang/tools/cmd/gopls
安装.网络
网络好, 或者设置 goproxy 代理后, 能够直接手动安装 gopls, 官方提示不要使用 -u.编辑器
go get golang.org/x/tools/gopls@latest
复制代码
装完以后, 添加以下的配置, 若是使用第一种安装方式, 那么第一行已经存在了:工具
"go.useLanguageServer": true,
"[go]": {
"editor.snippetSuggestions": "none",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
},
"gopls": {
"usePlaceholders": true, // add parameter placeholders when completing a function
"wantCompletionDocumentation": true // for documentation in completion items
},
"files.eol": "\n", // formatting only supports LF line endings
复制代码
若是你须要在不一样的编辑器中使用 gopls, 请参考官方安装文档中的设置.
目前支持如下的编辑器:
牛逼, 终于不用再为残疾的代码补全而苦恼了.