VSCode & GoMod 体验不太好

2019-01-02 15:37:14 +08:00
 Vegetable

最近尝试使用 go Mod,发现有 gomod 的项目用 VSCode 打开之后,代码补全自动引入之类的功能都很奇怪
补全变得很慢,比如输入 sql,如果用 gomod,直接就弹出 import 提示了,用了 gomod 就会很久或者干脆不提示. 使用 gopath 可以直接用 sql.这种方式呼出提示,现在需要我手动(可能是后台跑的太慢或者失败了)呼出,等个三五秒才行.

感觉是 gocode-gomod.exe 这个工具跑的比较慢,不知道你们有没有遇到这种情况,都是怎么解决的

11973 次点击
所在节点    Go 编程语言
11 条回复
shynome
2019-01-02 17:22:16 +08:00
还有很多工具还不支持 gomod , 见 issue
https://github.com/golang/go/issues/24661
kidlj
2019-01-02 17:30:08 +08:00
嗯,是这样,这个扩展一堆 issues 没解决,就因为这个我最近的项目都用的 gopath mode。前几天 russ cox 发了一篇关于 go modules 的官方博文,列出了在 2019 年里 go modules 的支持和迁移计划,其中包括一项对众多 go tools 的改进。
wweir
2019-01-02 17:40:49 +08:00
最近 vscode 搭配 bingo(lsp) 服用,感觉良好。因为是常驻服务,有 cache,跳转飞快
wweir
2019-01-02 17:41:40 +08:00
Hellert
2019-01-02 18:03:03 +08:00
也遇到了,启用 go.mod 后,CodeCompletion 非常慢。
我是用最新 gocode.exe 改名替换 gocode-gomod.exe 解决的,目前使用中还没发现问题。
godef-gomod.exe 后期版本会被废弃,因为 godef.exe 已经支持 gomod 了,也可以改名替换用最新的 godef.exe 。

golang 1.11.* ,modules 这块估记还没定型,最近几个小版本变化比较大,很多插件和包估记在观望。比如那个语义化版本,如果包的版本是 v2 以上的,要在 go.mod 的 module 里加上版本号,比如 github.com/org/package/v3 这样,使用时 import 也要加上类似 v3 这样的版本。

目前很多包不支持这个,如果包的版本已经到 v3,在启用 go.mod 的情况下,如果你直接 go get 就获取不到最新的版本,还得手动去提定最新版本号来 get。
gowk
2019-01-02 19:48:21 +08:00
建议用 JetBrains GoLand
Stevenv
2019-01-02 21:07:56 +08:00
建议用 idea 或者 goland
kungfuchicken
2019-01-02 21:12:17 +08:00
付费 Goland 真香警告
reus
2019-01-07 08:49:35 +08:00
过几个月就完善的了。go 的周边工具比起其他语言好得多,没什么必要用 goland 这种东西。
arbent
2019-04-26 18:40:37 +08:00
考虑下 gopls
lysS
2020-09-25 14:52:31 +08:00
这问题快一年了,很不幸我也遇到了。
环境:windows 10, go1.15 。
我发现你把环境变量中的 GO111MODULE 设置为 off(不是在命令行中 set),重启 VSCode 它的自动补全就正常了。
再把设置为 on,重启 VSCode,自动补全又差不多有五秒的延时了。
这代码的补全依靠 gocode,可以通过 gocode -debug 命令查看偏移,正常的应该低于 1ms,如果把 GO111MODULE 设置为 on,偏移会有几秒。
解决方式:居然时 gocode,我们就去 GitHub 看看这个项目,直接写着 Otherwise manually copy the gocode binary from $GOPATH/bin to a location which is part of your $PATH after getting it in step 2.
所以就这么解决啦😂😂😂

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/523133

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX