在 VS Code 中使用 gopls

帅气猫咪 · · 9693 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

简介

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

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

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

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

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

安装并设置 gopls

安装方式一

打开 VS Code 的设置, 搜索 go.useLanguageServe, 并勾选上.
默认情况下, Go 扩展会提示你安装 gopls.

如果长时间安装不上, 可以尝试手动安装,
官方安装指南.

安装方式二

另外也有可能是网络的问题, 直接去 https://github.com/golang/too...
下载, 然后使用 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

总结

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


有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:帅气猫咪

查看原文:在 VS Code 中使用 gopls

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:1006366459

9693 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传