V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
Vegetable
V2EX  ›  Go 编程语言

VSCode & GoMod 体验不太好

  •  
  •   Vegetable · 2019-01-02 15:37:14 +08:00 · 12083 次点击
    这是一个创建于 2151 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    11 条回复    2020-09-25 14:52:31 +08:00
    shynome
        1
    shynome  
       2019-01-02 17:22:16 +08:00   ❤️ 1
    还有很多工具还不支持 gomod , 见 issue
    https://github.com/golang/go/issues/24661
    kidlj
        2
    kidlj  
       2019-01-02 17:30:08 +08:00 via iPhone   ❤️ 1
    嗯,是这样,这个扩展一堆 issues 没解决,就因为这个我最近的项目都用的 gopath mode。前几天 russ cox 发了一篇关于 go modules 的官方博文,列出了在 2019 年里 go modules 的支持和迁移计划,其中包括一项对众多 go tools 的改进。
    wweir
        3
    wweir  
       2019-01-02 17:40:49 +08:00   ❤️ 1
    最近 vscode 搭配 bingo(lsp) 服用,感觉良好。因为是常驻服务,有 cache,跳转飞快
    wweir
        4
    wweir  
       2019-01-02 17:41:40 +08:00
    Hellert
        5
    Hellert  
       2019-01-02 18:03:03 +08:00   ❤️ 1
    也遇到了,启用 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
        6
    gowk  
       2019-01-02 19:48:21 +08:00
    建议用 JetBrains GoLand
    Stevenv
        7
    Stevenv  
       2019-01-02 21:07:56 +08:00 via Android
    建议用 idea 或者 goland
    kungfuchicken
        8
    kungfuchicken  
       2019-01-02 21:12:17 +08:00
    付费 Goland 真香警告
    reus
        9
    reus  
       2019-01-07 08:49:35 +08:00
    过几个月就完善的了。go 的周边工具比起其他语言好得多,没什么必要用 goland 这种东西。
    arbent
        10
    arbent  
       2019-04-26 18:40:37 +08:00
    考虑下 gopls
    lysS
        11
    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.
    所以就这么解决啦😂😂😂
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   965 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:19 · PVG 04:19 · LAX 12:19 · JFK 15:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.