首页 >后端开发 >Golang >如何在 VSCode 上获得 GoLand 的完美多模块支持(无需工作)

如何在 VSCode 上获得 GoLand 的完美多模块支持(无需工作)

PHPz
PHPz转载
2024-02-09 11:30:20623浏览

如何在 VSCode 上获得 GoLand 的完美多模块支持(无需工作)

php小编西瓜今天要为大家介绍一种方法,让你在VSCode上获得类似GoLand的完美多模块支持,而无需额外的工作。VSCode是一个非常受欢迎的开发工具,而GoLand则是一款专为Go语言开发设计的IDE。对于使用VSCode进行Go语言开发的开发者来说,如果能够拥有GoLand的多模块支持,将极大地提升开发效率。那么,如何实现这一目标呢?接下来,我们将为您一一解答。

问题内容

当我在 GoLand (Jetbrains) 中打开多模块项目时,它的工作效果非常好,实现类型声明和其他有用的 IDE 功能开箱即用,运行良好。

但是当我在 VSCode 中打开同一个项目时,我无法让智能感知工作(使用 gopls),它不起作用,并且需要使用 go work 对模块结构进行重大更改,(所以这不是我的选择) p>

是因为 GoLand 使用不同的语言服务器吗?

我尝试尝试 Go 扩展设置,但没有带来任何好处。我能够禁用语言服务器将所有内容变成红色,但这不是解决方案

解决方法

go 工作区 是工具包的一部分,应该适用于任何支持该功能的 ide 。我每天都在 vs code 上使用它。

所以基本上你需要在项目根目录中有一个 go.work 文件,vs code 会解释它。示例:

go 1.20

use (
    .
    ./mymodule1
    ./mymodule2
)

不同之处在于 goland 自动添加多模块设置中的模块,我不知道 vs code 具有此功能。

当您创建 go.work 文件时,goland 会自动添加项目中的所有模块。

如果你检查 go 的 .gitignore 你会看到默认情况下会忽略 go.work 文件,因此我假设您没有对其进行版本控制。我通常评论该行,以便 vs code 跟踪它并将其纳入我的提交中。

# Go workspace file
go.work

要将新模块添加到 go.work,只需执行 go 工作,使用新模块根目录中的 .,只需执行 go 工作,使用新模块根目录中的 . 即可。

有时我必须重新加载 vs code 才能同步它,但通常它会立即起作用。

如果您仍然遇到问题,那么可能值得尝试 对扩展进行故障排除

以上是如何在 VSCode 上获得 GoLand 的完美多模块支持(无需工作)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除