在 VS Code 中使用 gopls

简介

我一直是用 VS Code 做为 Go 语言的 IDE,使用的是官方的 Go 扩展, 但在使用过程当中发现有时候代码提示不够智能, 或者说基本没有提示.git

Go 扩展默认是使用大量的 Go 工具来提供各类功能的, 每一个工具提供某个方面的能力, 好比代码提示是依靠 gocode 的.github

不过微软在开发 VS Code 过程当中, 定义一种协议, 语言服务器协议, Language Server Protocol.golang

这但是个好东西, 若是你须要开发编辑器或 IDE, 就不须要再为每种语言实现诸如自动完成, 代码提示等功能了, 直接利用 语言服务器协议 就好了.json

gopls 就是官方的语言服务器, 当前处于 alpha 状态.vim

安装并设置 gopls

安装方式一

打开 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, 请参考官方安装文档中的设置.

目前支持如下的编辑器:

  • VSCode
  • Vim / Neovim
  • Emacs
  • Acme
  • Sublime Text

总结

牛逼, 终于不用再为残疾的代码补全而苦恼了.

相关文章
相关标签/搜索