当前位置: 首页 > article >正文

vscode 配置golang开发环境

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 insert or update安装工具会报错
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 支持的版本)

并在 Settings.json 中指定 golps 执行文件的目录:

"go.alternateTools": {
    "gopls": "D:\\Channelwill\\go\\bin\\gopls.exe",
},

配置调试环境
更新 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,                    // 设置是否显示日志
        }
    ]
}

http://www.kler.cn/a/584786.html

相关文章:

  • 《今日AI-人工智能-编程日报》
  • 从零开始写3D游戏引擎(开发环境VS2022+OpenGL)之九点五 编写运动摄像机镜头的源代码 细嚼慢咽逐条读代码系列
  • flutter 开发中的tips 【持续更新】
  • iframe 内事件冒泡
  • 数据标注质量对AI模型质量的影响分析
  • 微信小程序-实现锚点跳转,页面加载后自动跳转、点击跳转到指定位置
  • vue判断视频链接是否有效
  • windows平台的ffmpeg编译使用
  • 5.1 程序调试
  • Qt-开发设置窗体透明效果
  • Gitlab报错:sudo: a password is required
  • 【模拟CMOS集成电路设计】带隙基准(Bandgap)设计与仿真(基于运放的电流模BGR)
  • autoreconf --install的作用
  • 复试难度解析,西电先进材料与纳米科技学院学院考研录取情况
  • c++ 中的float和double 的区别 开发过程中使用哪个更好
  • 《阿里云Data+AI:开启数据智能新时代》电子书上线啦!
  • 每日一题力扣2697.字典序最小回文串c++
  • 生成式AI+安全:API防护的“进化革命”——从被动防御到智能对抗的技术跃迁
  • 【openGauss】物理备份恢复
  • Nginx的流式响应配置详解