登录
首页 >  Golang >  Go问答

如何在 VSCode 上实现完美的 GoLand 多模块支持(无需切换工作区)

来源:stackoverflow

时间:2024-02-14 10:09:24 321浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《如何在 VSCode 上实现完美的 GoLand 多模块支持(无需切换工作区)》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

当我在 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 工作,使用新模块根目录中的 . 即可。

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

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

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>