多根设置

Multi-root setup

我在 vscode 中编辑我的 Go 项目时收到此消息:

The Go language server is currently not supported in a multi-root set-up with different GOPATHs.

我的问题是:什么是“多根设置”?我打算使我的项目“多根”。如何避免此消息,并让语言服务器分析我的代码?

顺便说一句,我项目的目录布局是:

drwxrwxr-x 5 xrfang xrfang 4096  1月 21 22:33 docs
drwxrwxr-x 2 xrfang xrfang 4096  1月 21 22:33 exp
-rw-rw-r-- 1 xrfang xrfang  789  2月  3 20:52 Makefile
drwxrwxr-x 3 xrfang xrfang 4096  2月 12 22:03 pkg
drwxrwxr-x 7 xrfang xrfang 4096  1月 31 11:56 resources
drwxrwxr-x 8 xrfang xrfang 4096  2月 12 21:27 src
-rw-rw-r-- 1 xrfang xrfang  304  1月 21 22:33 TODO
-rwxrwxr-x 1 xrfang xrfang  395  1月 21 22:33 upgrade.sh
drwxrwxr-x 2 xrfang xrfang 4096  2月 12 21:28 utils

go.mod 文件在 src 目录中。而pkg是编译器生成的,比较奇怪,因为我的其他Go项目大部分都没有在repository文件夹中生成pkg。

错误消息指的是您的 GOPATH 环境变量。 GOPATH 允许多个路径以冒号分隔,但 gopls 不支持。

如果您正在使用模块 (go.mod),请尝试从 go.mod 所在的目录打开 vscode。

如果您在多个路径中使用 GOPATH,并且您打算在 GOPATH 模式下工作,那么 Ian 说不支持。

希望https://github.com/golang/vscode-go#setting-up-your-workspace提供更多信息。

此外,请确保禁用 "go.inferGopath" 设置。我怀疑存储库的结构可以使用 GOPATH 模式并将工作区根目录附加到 GOPATH。有可能 vscode Go plugin + gopls 不喜欢。 :-(