VSCode 管理 Golang 多Module代码

内容分享2周前发布
1 0 0

问题现象

在阅读开源代码时,使用VSCode打开目录发现go tool工具报以下错误,并且代码无法正常跳转

You are working in a nested module. Please open it as a separate workspace folder. Learn more: https://github.com/golang/tools/blob/master/gopls/doc/workspace

问题缘由

源码目录下包括多个Go的子模块,VSCode 无法直接分析主目录下的子模块,需要添加工作空间配置文件(xx.code-workspace),告知VSCode如何去解析子模块。

解决办法

  1. 获取VSCode Workspace配置文件。打开一个空工程,然后点击File -> Save Workspace As
  2. 保存Workspace配置文件。将上述生成的配置文件保存到多模块程序主目录下。
  3. 使用VSCode打开Workspace。点击File -> Open Workspace From File,然后选择上述生成的配置文件
  4. 添加子模块。然后依次手动点击 File -> Add Folder To Workspace,并选择子模块加入到当前Workspace
  5. 保存后即可获得完整的多Module管理workspace配置文件,并且代码可以正常跳转,这里以 etcd.code-workspace 为示例

{
    "folders": [
        {
            "path": "."
        },
        {
            "path": "./api"
        },
        {
            "path": "./client/pkg"
        },
        {
            "path": "./client/v2"
        },
        {
            "path": "./client/v3"
        },
        {
            "path": "./etcdctl"
        },
        {
            "path": "./etcdutl"
        },
        {
            "path": "./pkg"
        },
        {
            "path": "./raft"
        },
        {
            "path": "./server"
        },
        {
            "path": "./tests"
        }
    ]
}

总结

对workspace配置文件掌握熟悉后,后续添加子模块完全手动编辑即可,不用在IDE手动点击添加。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...