vscode的代码提示(golang)

二次信任 提交于 2020-10-28 10:31:01

上周末的时候,电脑重启了一下,然后发现代码提示没有了,F12的"Go to Definition"也不能使用了,经过一番测试折腾,今天终于把这两个问题修复了.

首先修复的是"Go to Definition".对应的setting.json的go.docsTool,缺省设置是godoc,网上说设置程gogetdoc,但在我这不起作用,还有一个选项是guru,这个起作用了.但到最后一通乱设,重装了几次gocode,莫名的使用缺省设置也可以了,所以这个设置,应该还是跟$GOPATH/bin下的某个文件有关.

没有代码提示,写代码的效率低了太多,一通乱搜之后,发现系统使用的是gocode-gomod作为代码提示服务.而我的项目还没有使用go module,然后看了一下环境变量,发现不知道什么时候,设置了GO111MODULE=on,难怪之前vscode提示要安装gocode-gomod,并且在我重启之后,老是提示我要执行go mod init.把这个设置改成off后(或者auto更好),再把$GOPATH/bin下的gocode-gomod,gocode都删除了,按照网上的说法,先使用了nsf/gocode,只能对标准库做代码提示,之后又使用了github.com/mdempsky/gocode,还是只能对标准库做代码提示.这下彻底没辙了.

快下班的时候,看到安装配置vscode的开发环境时,有这么一个步骤: git clone https://github.com/golang/tools.git tools
go install github.com/mdempsky/gocode
go install github.com/uudashr/gopkgs/cmd/gopkgs
go install github.com/ramya-rao-a/go-outline
go install github.com/acroca/go-symbols
go install golang.org/x/tools/cmd/guru
go install golang.org/x/tools/cmd/gorename
go install github.com/derekparker/delve/cmd/dlv
go install github.com/stamblerre/gocode
go install github.com/rogpeppe/godef
go install github.com/ianthehat/godef
go install github.com/sqs/goreturns
go install golang.org/x/lint/golint
go install github.com/cweill/gotests/...
go install github.com/fatih/gomodifytags
go install github.com/josharian/impl
go install github.com/davidrjenni/reftools/cmd/fillstruct
go install github.com/haya14busa/goplay/cmd/goplay

注意黑体字那两行,我对照$GOPATH/bin看了一下,并没有两个gocode,抱着死马当活马医的想法,删除当前的gocode,go get -u github.com/stamblerre/gocode
然后执行$GOPATH/bin/gocode,ps aux|grep gocode看到正常执行了,尝试了一下,一切都正常了.

网上的很多教程,存在这很多的错误,大家知其然而不知其所以然,机械的照搬.这回修复这个问题,让我知道安装配置vscode的开发环境时其实有重复的部分,只要选择一个自己合适的安装即可,并不用浪费时间安装两次.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!