VSCode Go Golang不能跳转到定义解决办法 (问题排查)

环境说明

  • mac vscode
  • Go版本: go version go1.13 darwin/amd64.
  • 使用go modules模式: go.mod文件表明模块和vendor目录存储第三方依赖.

遇到的问题一

vscode PROBLEM窗口提出出错:
missing $GOPATH

解决办法: 检查go是否安装成功, GOPATH是否设置成功.

安装VScode-Go插件

在vscode extensions中安装Go插件.
VSCode Go Golang不能跳转到定义解决办法 (问题排查)
插件配置: 使用gogetdoc和goimports. (后续也可以尝试 Docs Tool使用guru, 跳转到定义很快速)
VSCode Go Golang不能跳转到定义解决办法 (问题排查)
不要选择language server!!! (我选择了, 不能用)
VSCode Go Golang不能跳转到定义解决办法 (问题排查)
安装go Install/Update Tools:
VSCode Go Golang不能跳转到定义解决办法 (问题排查)
选择如下的所有工具

 gocode
 gopkgs
 go-outline
 go-symbols
 guru
 gorename
 gotests
 gomodifytags
 impl
 fillstruct
 goplay
 godoctor
 dlv
 gocode-gomod
 gogetdoc
 goimports
 golint

在workspace setting中设置vender目录, 先选择如下打开设置:
VSCode Go Golang不能跳转到定义解决办法 (问题排查)
然后添加如下:
VSCode Go Golang不能跳转到定义解决办法 (问题排查)

 "go.toolsEnvVars": {
        "GOFLAGS": "-mod=vendor"
}

重新加载窗口:
VSCode Go Golang不能跳转到定义解决办法 (问题排查)
注意: 工程下要要有go.mod和vendor, 工程文件结构示例如下:
VSCode Go Golang不能跳转到定义解决办法 (问题排查)

参考资源

  • go无法掉转到定义解决办法: https://blog.csdn.net/tongxin13/article/details/104245905, 里面说了进行其他的设置也有可能成功, 还要自己尝试才行.
  • 如果是要远程SSH运行vscode的话, 需要在服务器安装相应的插件和tools, 设置好也能进行跳转.
  • 把project放到$GOPATH/src有时也能够跳转到定义(防止vendor没有设置好, 导致找不到路径).
上一篇:POJ-1330--Nearest Common Ancestors(离线LCA)


下一篇:.NET开发过程中的全文索引使用技巧之Solr