在Visual Studio Code中进行
使用 Go 扩展支持 Visual Studio Code,你会获得 IntelliSense、代码导航、符号搜索、测试、调试等多种功能,帮助你在 Go 开发中得到帮助。

你可以从 VS Code 市场安装 Go 扩展。
观看《VS Code Go 入门指南》,了解如何用 VS Code Go 构建你的第一个 Go 应用。
本文仅介绍了 Go 扩展提供的部分功能。请参阅扩展文档以获取完整且最新的支持功能列表。
IntelliSense

IntelliSense 的功能由 Go 语言服务器 gopls 提供,Go团队维护。你可以配置GOPLS使用GOPLS背景设定.
语义句法高亮
为了比默认的TextMate语法高亮更好的语法高亮,我们建议通过开启Gopl'来启用语义高亮ui.semanticTokens环境。
"gopls": { "ui.semanticTokens": true }
自动完成
当你输入 Go 文件时,可以看到 IntelliSense 会给你推荐的补全项。这甚至适用于当前、导入和尚未导入的包的成员。只需输入任意包名,然后加上.,你会得到对应包成员的建议。
提示:使用⌃Space(Windows,Linux Ctrl+Space)手动触发建议。
悬停信息
鼠标悬停在任何变量、函数或结构体上,都会获得该项的信息,比如文档、签名等。
签名帮助
当你在调用函数时打开 ,弹窗会为函数提供签名帮助。随着你不断输入参数,提示(下划线)会移动到下一个参数。(
提示:使用⇧⌘Space(Windows,Linux Ctrl+Shift+Space)在光标位于函数调用内时手动触发签名帮助。
()
代码导航
代码导航功能可在编辑器的上下文菜单中使用。
- 进入定义F12——进入类型定义的源代码。
- 进入类型定义——进入定义符号的类型。
- 窥视定义 ⌥F12(Windows Alt+F12,Linux Ctrl+Shift+F10)——调出带有类型定义的窥视窗口。
- 前往参考文献 ⇧F12(Windows,Linux Shift+F12)——显示该类型的所有参考文献。
- 显示调用层级 ⇧⌥H(Windows,Linux Shift+Alt+H)——显示函数的所有调用。
- 进入实现 ⌘F12(Windows,Linux Ctrl+F12)——打开一个窥视窗口,列出所有接口实现(如果触发的是接口类型符号),或是接口实现(如果触发具体类型符号)。
- 查找所有实现 - 显示接口的所有实现(如果触发时使用接口类型符号),或显示接口实现(如果触发时使用具体类型符号)。
你可以通过命令面板中的“去到符号”命令(Windows,Linux Ctrl+Shift+P)中的“去到符号”命令进行导航。
- 进入文件中的符号 - ⇧⌘O(Windows,Linux Ctrl+Shift+O)
- 在工作区中进入符号 - ⌘T(Windows,Linux Ctrl+T)
你还可以通过“Go: Toggle Test File”命令在 Go 文件和其测试实现之间来回切换。
构建与诊断
Go 语言服务器 (GOPLS)检测工作区中发现的构建和审核错误。运行上述任何或全部错误时,错误和警告将在编辑器中显示为红绿波浪线。这些诊断也会显示在问题面板(查看>问题)中。
你可以用go.lintOnSave(去掉掉)存档设置和配置你选择的绒毛工具(静态检查,戈朗奇-林特,或者复兴) 使用go.lintTool环境。
格式
你可以用⇧⌥F格式化Go文件(Windows Shift+Alt+F,Linux Ctrl+Shift+I),或者在命令面板或编辑器的右键菜单中运行格式化文档命令。
默认情况下,格式化是在保存 Go 文件时运行的。你可以通过设置来禁用这种行为
错误对于[开始]语言标识符。你可以用你的JSON设置文件来更改这个设置。
"[go]": {
"editor.formatOnSave": false
}
当你为 Go 文件启用了多个格式化工具时,可以选择 Go 扩展名作为默认格式化工具。
"[go]": {
"editor.defaultFormatter": "golang.go"
}
格式由以下提供GOPLS.如果你愿意戈夫姆特-风格格式化,你可以配置GOPLS使用戈夫姆特.
"gopls": {
"formatting.gofumpt": true
}
测试
VS Code 测试的 UI 和编辑器 CodeLens 元素允许用户轻松运行测试、基准测试、配置文件,针对特定功能、文件、包或工作区。
或者,同样的功能也可以通过一组命令实现:
你可以在命令面板中输入“Go: test”来探索许多与测试相关的命令。

上述前三个可以用来生成当前包、文件或光标中函数的测试骨架,使用gotests.最后几个可以用来在当前包、文件或光标上运行测试,使用GO测试.还有一个命令用于获取测试覆盖率。
你可以配置扩展以运行测试并计算测试覆盖率,方法包括:
去.testOnSave。去。盖住存档go.test旗帜
导入软件包
该扩展负责组织导入,默认移除未使用的导入。对于不同的行为,你可以按照这些说明覆盖每种语言的默认设置。
运行命令 Go: Add Import 以获取可以导入到 Go 文件的包列表。选择一个,它会被添加到你 Go 文件的导入块中。
重构
选择重构区域(例如变量、函数主体等)。点击选中区域中出现的代码动作灯泡图标,或在VS Code上下文菜单中选择重构......或重命名符号(F2)。
调试
Go 扩展允许你利用 Delve 调试器调试 Go 代码。
阅读 Debug Go 的 VS Code 程序,了解设置步骤、支持的功能、配置、远程调试信息以及故障排除指南。关于一般调试功能,比如检查变量、设置断点以及其他非依赖语言的活动,请回顾VS Code调试。
围棋独有的一些功能包括:
- 本地与远程调试
- 使用Delve表达式语法进行数据检查
- 动态配置变更和检查选项
DLV指挥摘自调试控制台 - 隐藏/显示系统运行程序的能力(使用
hideSystemGoroutines配置) - 反汇编视图支持(右键点击你的源代码,选择打开反汇编视图)
- 实验函数调用,核心检查,Mozilla
RR支持
下一步
这是对 VS Code 中 Go 扩展功能的简要概述。更多信息请参见 Go 扩展 README 中的详细信息。
想了解 Go 扩展的最新功能/修复,请查看更新日志。
如果你有任何问题或功能请求,可以随时把它们记录在 Go 扩展 vscode-go 仓库里。
如果你想了解更多VS Code,可以尝试以下主题: