06-插件依赖的Go工具

VS Code的Go扩展程序提供了安装在GOPATH中的各种Go工具。

  • 其中有一些工具负责通用的编程语言功能,如:

    • 代码导航
    • 自动补全
    • 符号搜索
  • 另外的一些工具对Go扩展程序来说是可选的,它们提供日常的语言支持。

以下是Go扩展程序的常用功能必须用到的工具。如果已经选择使用Go语言的服务器,那么就不需要以下大部分的工具了,因为在Go语言服务器中将会提供相应的功能。

注意:如果使用的是Go Modules,那么强烈建议使用Go语言服务器,因为它的性能要比下面的工具强很多。

Go 工具

  • gocode:自动补全(如果使用语言服务器则不需要这个工具
  • go-outline:在当前文件中进行变量搜索
  • go-symbols:在当前工作区进行变量搜索
  • gopkgs:自动导入依赖的包
  • guru:查找所有引用
  • gorename:变量重命名
  • goreturns或者goimports:格式化代码((如果使用语言服务器则不需要这个工具))
  • godef或者gogetdoc:跳转到定义(如果使用语言服务器则不需要这个工具
  • godoc或者gogetdoc:鼠标悬停时显示文档(如果使用语言服务器则不需要这个工具
  • golint或者gometalinter或者megacheck或者golangci-lint或者revive:用于代码分析
  • dlv:用于调试

如果其中的某个工具缺失时,将在编辑区的右下角看到Analysis Tools Missing的警告。单击该警告时VSCode或帮助安装缺少的工具。

Go语言的这个扩展程序还有其他的功能,虽然不是每天都使用这些功能。例如,生成单元测试、生成接口的stub或修改stub的标签。用于实现这些功能的工具如下:

  • gomodifytags:修改结构体的标签
  • goplay:在Go playground中运行当前文件
  • impl:生成接口的stub
  • gotype-live:给自定义类型提供诊断
  • gotests:生成单元测试
  • go-langserver:通过Sourcegraph来使用Go语言服务器
  • fillstruct:使用默认值填充结构体中变量

可以通过运行命令Go: Install/Update Tools立即安装所以工具,如果更改了正在使用的Go版本,同样使用这个命令使工具保持最新的同时重新编译。

如果希望扩展程序使用单独的GOPATH来存放这些Go工具,在配置文件setting.jsongo.toolsGopath参数中设置希望的存储路径。

在当前GOPATH中手动安装这些工具,只要拷贝下面的指令并在终端中运行即可:

go get -u -v github.com/ramya-rao-a/go-outline
go get -u -v github.com/acroca/go-symbols
go get -u -v github.com/mdempsky/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v golang.org/x/tools/cmd/godoc
go get -u -v github.com/zmb3/gogetdoc
go get -u -v golang.org/x/lint/golint
go get -u -v github.com/fatih/gomodifytags
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/goimports
go get -u -v github.com/cweill/gotests/...
go get -u -v golang.org/x/tools/cmd/guru
go get -u -v github.com/josharian/impl
go get -u -v github.com/haya14busa/goplay/cmd/goplay
go get -u -v github.com/uudashr/gopkgs/cmd/gopkgs
go get -u -v github.com/davidrjenni/reftools/cmd/fillstruct
go get -u -v github.com/alecthomas/gometalinter
gometalinter --install

安装调试工具:delve查看这篇指南

按照一下步骤在Linux系统中编译和安装调试:

方式一:

go get -u github.com/go-delve/delve/cmd/dlv

方式二:

首先保证GOPATH环境变量已经设置好。

git clone https://github.com/go-delve/delve.git $GOPATH/src/github.com/go-delve/delve
 cd $GOPATH/src/github.com/go-delve/delve
make install

注意:如果使用Go1.5版本,那么必须先设置GO15VENDOREXPERIMENT=1`才能继续。

上次修改: 14 April 2020