Sublime Text 中的 LSP-gopls 在 $HOME 中创建 go 目录,而不是自定义位置

LSP-gopls in Sublime Text creates go directory in $HOME instead of a custom location

提问人:Modern Fears 提问时间:8/28/2023 更新时间:8/29/2023 访问量:60

问:

我正在将 Sublime Text 与 LSP-gopls 插件一起使用进行 Go 开发,并且我有一个自定义集:而不是 .GOPATH$HOME/Code/go$HOME/go

但是,每次我运行 Sublime Text 时,都会在目录中创建该目录。通常,LSP-gopls 应将这些文件存储在 中指定的目录中,但它使用默认目录。go/pkg/mod/...$HOME$GOPATH

如何解决?

我确信它是 LSP-gopls,因为当我禁用它、删除 中的目录并重新启动 Sublime Text 时,此行为就会消失。我在.在插件设置中,设置了自定义路径。$HOMEexport GOPATH=$HOME/Code/go.zshrcgopls"command" : ["/Users/user/Code/go/bin/gopls"]

sublimetext sublime-text-plugin gopls

评论

2赞 kostix 8/28/2023
GOPATH不用于“现代”(如去年的 3-4 个)Go 在所谓的模块上运行。您可能希望改为设置 GOCACHE
1赞 Modern Fears 8/29/2023
谢谢你,@kostix。你的回答让我做出了决定。原来我需要在 LSP-golsp 设置中进行设置。$GOMODCACHE"settings":{"gopls.env":{"GOMODCACHE":"/Users/user/Code/go/pkg/mod"}}
1赞 kostix 8/29/2023
我不知道你到底在追求什么,但以防万一,我应该注意到,虽然该设置将被 尊重,但它不会被尊重(表面上,如果以某种方式从 Sublime Text 中调用),所以考虑到有限的上下文,在每个用户级别覆盖这些设置似乎更明智(比如,在您的 ~/.whateverrc 中)。缓存这些东西的“诀窍”在于它是版本化的,因此每次调用 Go 工具都可以适当地重用这些信息。goplsgo build
0赞 Modern Fears 8/29/2023
谢谢。这是一个重要的补充!

答:

2赞 Modern Fears 8/29/2023 #1

原来我需要在 LSP-golsp 设置中进行设置。$GOMODCACHE

"settings": {
  "gopls.env": {"GOMODCACHE":"/Users/user/Code/go/pkg/mod"}
}