V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
Vegetable

VSCode & GoMod 体验不太好

  •  
  •   Vegetable · Jan 2, 2019 · 12655 views
    This topic created in 2676 days ago, the information mentioned may be changed or developed.

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

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

    11 replies    2020-09-25 14:52:31 +08:00
    shynome
        1
    shynome  
       Jan 2, 2019   ❤️ 1
    还有很多工具还不支持 gomod , 见 issue
    https://github.com/golang/go/issues/24661
    kidlj
        2
    kidlj  
       Jan 2, 2019 via iPhone   ❤️ 1
    嗯,是这样,这个扩展一堆 issues 没解决,就因为这个我最近的项目都用的 gopath mode。前几天 russ cox 发了一篇关于 go modules 的官方博文,列出了在 2019 年里 go modules 的支持和迁移计划,其中包括一项对众多 go tools 的改进。
    wweir
        3
    wweir  
       Jan 2, 2019   ❤️ 1
    最近 vscode 搭配 bingo(lsp) 服用,感觉良好。因为是常驻服务,有 cache,跳转飞快
    wweir
        4
    wweir  
       Jan 2, 2019
    Hellert
        5
    Hellert  
       Jan 2, 2019   ❤️ 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  
       Jan 2, 2019
    建议用 JetBrains GoLand
    infreboot
        7
    infreboot  
       Jan 2, 2019 via Android
    建议用 idea 或者 goland
    kungfuchicken
        8
    kungfuchicken  
       Jan 2, 2019
    付费 Goland 真香警告
    reus
        9
    reus  
       Jan 7, 2019
    过几个月就完善的了。go 的周边工具比起其他语言好得多,没什么必要用 goland 这种东西。
    arbent
        10
    arbent  
       Apr 26, 2019
    考虑下 gopls
    lysS
        11
    lysS  
       Sep 25, 2020
    这问题快一年了,很不幸我也遇到了。
    环境: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.
    所以就这么解决啦😂😂😂
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   789 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 21:11 · PVG 05:11 · LAX 14:11 · JFK 17:11
    ♥ Do have faith in what you're doing.