现在位置: 首页 > Go 语言教程 > 正文

使用 VSCode 开发 Go

Visual Studio Code(简称 VS Code)是一个由微软开发的免费、开源的代码编辑器,支持多种编程语言,并提供了代码高亮、智能代码补全、代码重构、调试等功能。

借助 Visual Studio Code 的 Go 官方扩展插件,你可以获得智能提示、代码跳转、符号检索、单元测试、程序调试等一系列助力 Go 项目开发的实用能力。

如果你还不了解 VS Code 或者还未安装,可以参考:VSCode 教程

安装 Go 插件

打开 VS Code 扩展市场,搜索:Go Extension for VS Code

编辑器内容,点击左侧的扩展,然后搜索 Go,然后安装官方插件:

安装完成后,我们就可以开始编写 Go 的代码,可以输入 fmt. 试试智能提示功能:


智能提示(IntelliSense)

智能提示由 Go 官方团队维护的 gopls 语言服务提供,可通过 gopls 配置项自定义运行规则。

1. 语义高亮

VS Code默认基于TextMate语法做代码高亮,如需效果更好的语义级高亮,在配置中开启ui.semanticTokens

"gopls": { "ui.semanticTokens": true }

2. 代码自动补全

编辑Go源码时,插件实时弹出代码补全候选,支持当前包、已导入包、尚未导入包的成员联想;输入包名+.即可唤起对应包内方法/常量提示。

快捷键:Ctrl+空格(⌃Space) 手动唤起补全弹窗

3. 悬浮文档提示

鼠标悬浮在变量、函数、结构体上,弹窗展示注释文档、函数签名等详情。

4. 函数参数提示

键入函数左括号(时自动弹出形参签名,输入实参时下划线跟随切换当前填写参数;

快捷键:Shift+Cmd+空格(⇧⌘Space) 光标在括号内时手动触发参数提示

代码导航

编辑器右键菜单内置全套代码导航功能:

  • F12 跳转定义:进入类型/变量源码定义处
  • 跳转类型定义:定位变量底层的类型源码
  • Alt+F12(⌥F12) 预览定义:弹窗预览源码,不切换文件
  • Shift+F12(⇧F12) 查找引用:列出当前符号所有被引用位置
  • Shift+Alt+H(⇧⌥H) 调用层级:查看函数的调用方与被调用方链路
  • Cmd+F12(⌘F12) 查看实现:接口查看所有实现类、实体类查看实现的全部接口

打开命令面板Shift+Cmd+P(⇧⌘P),通过符号检索快速跳转:

  • Shift+Cmd+O(⇧⌘O):当前文件内检索符号
  • Cmd+T(⌘T):全工作区全局检索符号

使用指令 Go: Toggle Test File,快速在业务代码与对应测试文件来回切换。


代码格式化

  • 快捷键:Shift+Alt+F(⇧⌥F) 一键格式化当前文件
  • 也可通过命令面板/右键菜单执行「格式化文档」

格式化配置

  1. 关闭保存自动格式化

    "[go]": {
        "editor.formatOnSave": false
    }
  2. 指定Go插件为Go文件默认格式化工具

    "[go]": {
        "editor.defaultFormatter": "golang.go"
    }
  3. 启用gofumpt严格格式化风格(比原生gofmt规范更严苛)

    "gopls": {
        "formatting.gofumpt": true
    }

    格式化底层依赖gopls实现


单元测试

VS Code侧边栏测试面板 + 代码上方CodeLens快捷按钮,支持函数/文件/包/整个项目的单元测试、基准测试、性能采样。
命令面板输入 Go: test 可查看全部测试指令,常用:

  • Go: Test Function At Cursor:运行光标所在函数测试
  • Go: Test File:运行当前文件全部测试用例
  • Go: Test Package:运行当前代码包全部测试
  • Go: Test All Packages in Workspace:全项目批量测试

前3条指令可基于gotests自动生成测试用例骨架;插件支持配置:

  • go.testOnSave:保存代码自动执行测试
  • go.coverOnSave:保存自动生成测试覆盖率
  • go.testFlags:自定义go test运行参数

调试Debug

Go插件依托Delve调试器实现Go代码调试,独有能力:

  1. 本地调试 + 远程服务调试
  2. 使用Delve表达式语法在调试面板查看自定义数据
  3. 在调试控制台执行dlv原生指令,动态修改调试配置、查看变量
  4. 配置hideSystemGoroutines隐藏/展示系统协程
  5. 右键代码打开汇编视图Disassembly View
  6. 实验性功能:函数调用调试、core文件分析、Mozilla rr反向调试

更多相关工具