Golang Go语言中VSCode建议切换到Google官方语言服务器gopls,有质的提升
Golang Go语言中VSCode建议切换到Google官方语言服务器gopls,有质的提升
自从用了 gomod,VSCode 写 golang 各种问题,一度想放弃。 最近看了 vscode-go 项目,随即切换到了 Google 官方的语言服务器 gopls,发现跳转,hover,Code Complete 等等速度都有质的飞跃,大家不防一试,方法很简单,设置:
"go.useLanguageServer": true
jetbrain 保平安
更多关于Golang Go语言中VSCode建议切换到Google官方语言服务器gopls,有质的提升的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
生在了这么好的时代 为啥不用 goland 省心
goland 免费吗?
用上 lsp 几个月了,也是最近一个月才切换的 gopls,各种流畅各种爽。唯一权限是还不支持 go modules
哪里设置
gomod 支持,我最近一直在用,没发现什么问题
支持的吧,只是支持经常会出问题
慢得要死,没法用,当然,有段时间没有这玩意了,特别是与 gopls 不搭
我说的是
1. 项目放在 gopath 对应位置,能读到正确的依赖
2. 项目不放在 gopath,各功能正常工作
gopls 最近更新很频繁,你要手动升级一下才行:Go: install/update tools
挂了代理装 golsp, 还是 timeout, 是我姿势不对吗
楼主,gopls 需要联网吗?
以前用过 sourcegrapht 的 gopls,bingo,感觉不太成熟。
楼主现在用的哪个版本的 gopls?
gopls 是官方开发过程中的,具体的更新可以看这里
https://go-review.googlesource.com/q/status:merged+gopls
反正我隔几天就会升级一次
gopls 是 google 官方的,以后估记和 godoc 这类一样会成内置吧,不需要联网。
SourceGraph 和 bingo 都停止维护了,现在都推荐用 gopls。
最新的 vscode-go 默认的 lsp 已经是 gopls,只需启用。
vscode-go 把 gocode 和 godef 全部 fork 了一份 然后现在 gocode-mod 不支持 package 的自动 import (本来的 gocode 是可以敲下包名就自动把 path import 进来了 现在还要自己 import 这个有点困扰了
(好像 vim-go 现在也用默认 gopls 了
unstable 的东西这样滥用真的好吗 XD
是的,不能自动 Import 我也遇到了,是个已知问题,后期 gopls 支持:
https://github.com/microsoft/vscode-go/issues/2484
https://github.com/golang/go/issues/31906
gopls 是开源的吗,github 上有吗?
是,在 /x/tools/里边吧
我试了几次都是 timeout,也是一脸懵逼
我打开 setting.json 一看,默认就是 true 了。还是我失忆了。
goland 也是蛮好的,就是太贵了,一年要 1000 多,对一些人来说可能没必要。goland 字体渲染比 vscode 差。
想要更激进一点,用这个 https://github.com/saibing/tools
bingo 的作者被邀请去写官方的 gopls,他会先在这里试,然后 merge 的官方库。
总之最近是一直在更新了。
不过还好只影响 GO11MODULE=on 就是了🤣
没 1000 多那么贵吧?我买的单版本授权也就 89 刀一年,合计也就 600 多人民币啊……
gopls 有 rename 的功能吗?好像没找到配置可以开启,现在 go-renames 太慢了
主要是有点小贵,给公司开发程序的话,公司不给报销,还得自己买
之前用 vscode,我记得有个用到的工具还不支持 go mod,被迫换回 goland…
gopls 会莫名其妙的内存泄漏和 cpu 巨高
哦,我记错了,企业版是 1000 多
现在推荐用啥?我记得官方 github 之前推荐用 bingo 因为 mod 支持不好。我刚看了下配置还是
"go.useLanguageServer": true,
“go.alternateTools”: {
“go-langserver”: “bingo”
},
“go.languageServerFlags”: [
“-enhance-signature-help”,
“-trace”,
“-format-style=goimports”,
],
羡慕那些用得起免费的人
还会莫名其妙识别不到标准库,我真的疯掉了
最新版还好
别用 go modules 那套,只把包放在 GOPATH 里面,表现还好,用了几个月了
你们的 vscode-go 能提示标准库吗,输import "<a target="_blank" href="http://github.com/" rel="nofollow noopener">github.com/</a>"
或者import "net/"
时自动补全包名
The gopls server crashed 5 times in the last 3 minutes. The server will not be restarted.
开启后 crash 啊
当前 vscode-go/ gopls 对 modules 的支持还有不少问题。
我是这样用的:
把项目目录建立在 GOPATH 里。安装依赖时设定 GO111MODULE=on,然后 go mod vendor 到 vendor 目录。
之后 GO111MODULE=off 使用,vscode-go 对 GOPATH 模式支持得很好。如果新加依赖就重复上述过程。
在公司内网连 go get 都用不了的人表示
挺羡慕你们的
我用的是传统的 gopath 和 go tools。
使用包的时候会有函数提示,保存的时候会自动导入包。
直接输入包名不会有提示。
使用传统 go tools,Windows 下函数提示,跳转定义较慢。建议用 vscode remote 到 linux 或各用 mac。
下载压缩包,解压到对应目录也可以。
羡慕用得起 vscode 的人
搞明白 gopls 的坑了:只认一个根目录。
可以是 gopath,也可以是一个 go modules 项目目录,
同一 workspace 打开两个 目录,铁定报错
主要没这样用过😂
win10 vscode remote 加上 gopls, 导致跳转定义不能用,禁用之后跳转定义正常,有大佬遇到过么
+1
我今天发现 gopls.exe 内存涨到 2 个 G
+1,代码跳转和提示经常性不工作,处在 loading 状态,然后内存暴涨,风扇开始呼呼转,已经放弃投奔 goland
+1,鼠标悬停处在 loading 状态,然后内存暴涨,风扇开始呼呼转,已经放弃投奔 goland
针对您提到的VSCode建议切换到Google官方语言服务器gopls以获得质的提升,作为IT领域的GO语言专家,我给出以下回复:
确实,切换到gopls能显著提升Golang在VSCode中的开发体验。gopls是Go语言的官方语言服务器协议(LSP)实现,提供了诸如智能自动完成、签名帮助、重构和工作区符号搜索等强大的IDE功能。
与之前的命令行工具集合相比,gopls作为持久化和统一的服务器,带来了根本性的转变。它不仅提高了性能和稳定性,还通过统一的接口为不同编辑器提供了相同的功能,从而极大地提升了开发效率。
此外,随着Go modules的普及,gopls对modules的支持也更加完善,为Go开发者提供了更好的开发环境和工具支持。
因此,我强烈建议Golang开发者在VSCode中切换到gopls,以获得更加流畅和高效的开发体验。如果在使用过程中遇到任何问题,可以查阅官方文档或寻求社区的帮助。