vscode 配置golang开发环境

在go1.20环境中需要指定工具的安装版本

go install golang.org/x/tools/gopls@v0.15.3
go install github.com/go-delve/delve/cmd/dlv@v1.21.0

使用go Install/Update tool安装工具会报错
go版本太低, 而很多时候为了项目稳定或风险太高, 我们不太希望升级到go最新版

解决办法:

在 Settings.json 里指定 toolsManagement 的目标 GO 版本

"go.toolsManagement.go": "D:/Program/gvm/go/bin/go.exe",

外部依赖包无法解析、引入
当从 Cursor 打开项目代码的时候,会出现下面的情况,依赖包无法引入。

解决办法:
手动安装 golps

go install golang.org/x/tools/gopls@v0.15.3 (1.20.5 支持的版本)

配置调试环境
更新 lanuch 配置,示例如下:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "API Server",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceFolder}/api/main.go",  // 程序1的路径
            "env": {},                          // 可以在这里设置环境变量
            "args": [
                "--conf", "D:/xxx/config"
            ],                   // 可以在这里传递命令行参数
            "showLog": true,                    // 设置是否显示日志
        },
        {
            "name": "Grpc Server",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceFolder}/grpc/main.go",  // 程序1的路径
            "env": {},                          // 可以在这里设置环境变量
            "args": [
                "--conf", "D:/xxx/config"
            ],                   // 可以在这里传递命令行参数
            "showLog": true,                    // 设置是否显示日志
        },
        {
            "name": "RabbitMQ Server",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceFolder}/rabbitmq/main.go",  // 程序1的路径
            "env": {},                          // 可以在这里设置环境变量
            "args": [
                "--conf", "D:/xxx/config"
            ],                   // 可以在这里传递命令行参数
            "showLog": true,                    // 设置是否显示日志
        }
    ]
}

附录我的vscode配置

{
    "workbench.colorTheme": "Default Dark+",
    "terminal.integrated.defaultProfile.windows": "Command Prompt",
    "files.autoSave": "afterDelay",
    "window.commandCenter": true,
    "workbench.editorAssociations": {
        "*.go": "default"
    },
    "editor.fontSize": 16,
    "window.zoomLevel": 1,
    "go.useLanguageServer": true,
    "git.openRepositoryInParentFolders": "never",
    "[snippets]": {
        "editor.snippets.codeActions.enabled": false
    },
    "go.toolsManagement.go": "D:/Program/gvm/go/bin/go.exe",
    "gopls": {
      "usePlaceholders": true,
      "completeUnimported": true,
      "deepCompletion": true,
      "formatting.gofumpt": true
    }
}
Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐