VSCode & GoMod 体验不太好 - V2EX
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 12414 次点击
    这是一个创建于 2482 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近尝试使用 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
    infreboot
        7
    infreboot  
       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     Solana     2799 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 13:34 PVG 21:34 LAX 06:34 JFK 09:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86