Golang Go语言中 VSCode & GoMod 体验不太好
Golang Go语言中 VSCode & GoMod 体验不太好
最近尝试使用 go Mod,发现有 gomod 的项目用 VSCode 打开之后,代码补全自动引入之类的功能都很奇怪
补全变得很慢,比如输入 sql,如果用 gomod,直接就弹出 import 提示了,用了 gomod 就会很久或者干脆不提示.
使用 gopath 可以直接用 sql.这种方式呼出提示,现在需要我手动(可能是后台跑的太慢或者失败了)呼出,等个三五秒才行.
感觉是 gocode-gomod.exe 这个工具跑的比较慢,不知道你们有没有遇到这种情况,都是怎么解决的
还有很多工具还不支持 gomod , 见 issue
https://github.com/golang/go/issues/24661
更多关于Golang Go语言中 VSCode & GoMod 体验不太好的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
嗯,是这样,这个扩展一堆 issues 没解决,就因为这个我最近的项目都用的 gopath mode。前几天 russ cox 发了一篇关于 go modules 的官方博文,列出了在 2019 年里 go modules 的支持和迁移计划,其中包括一项对众多 go tools 的改进。
最近 vscode 搭配 bingo(lsp) 服用,感觉良好。因为是常驻服务,有 cache,跳转飞快
也遇到了,启用 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。
建议用 JetBrains GoLand
建议用 idea 或者 goland
付费 Goland 真香警告
过几个月就完善的了。go 的周边工具比起其他语言好得多,没什么必要用 goland 这种东西。
考虑下 gopls
这问题快一年了,很不幸我也遇到了。
环境: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.
所以就这么解决啦😂😂😂
针对您提到的VSCode与GoMod在Go语言开发中的体验问题,以下是一些专业建议:
首先,VSCode作为一款轻量级但功能强大的代码编辑器,在Go语言开发领域有着广泛的应用。它通过丰富的插件生态系统,特别是Go插件,为Go开发者提供了智能提示、代码导航、代码检查、调试等一系列功能,极大地提高了开发效率。
然而,在使用VSCode进行Go语言开发时,确实可能会遇到一些与GoMod相关的问题。这通常是由于工作目录配置不当、模块文件冲突或环境变量设置错误等原因导致的。
为了优化VSCode与GoMod的体验,建议采取以下措施:
- 正确设置工作目录:确保VSCode的工作目录设置为项目根目录的子目录,以避免加载错误的模块文件。
- 合理配置环境变量:通过
go env -w
命令设置GO111MODULE
为on
,以启用模块支持,并确保VSCode能够正确识别和使用go.mod文件。 - 更新VSCode和Go插件:确保您的VSCode和Go插件都是最新版本,以获得最新的功能和修复。
通过以上措施,相信您能够显著提升VSCode与GoMod在Go语言开发中的体验。