VS Code Go 扩展为 Go 编程语言提供了丰富的语言支持。
Visual Studio Code 1.75 或更高版本(或与 VS Code 1.75+ API 兼容的编辑器)
转到 1.21 或更高版本。
欢迎! ??
无论您是 Go 新手还是经验丰富的 Go 开发人员,我们希望此扩展能够满足您的需求并增强您的开发体验。
如果尚未安装 Go 1.21 或更高版本,请安装。
安装 VS Code Go 扩展。
打开任何 Go 文件或 go.mod 文件即可自动激活扩展。 Go 状态栏出现在窗口的右下角,并显示您的 Go 版本。
该扩展取决于go
、 gopls
(Go 语言服务器)和可选工具(具体取决于您的设置)。如果gopls
丢失,扩展将尝试安装它。 Go 版本旁边的 ⚡ 符号表示语言服务器正在运行,您可以开始使用了。
(安装缺少的工具)
你准备好出发了吗:-)???
探索 VS Code Go 扩展的更多功能。
查看设置文档和高级主题以自定义扩展。
查看工具文档,了解 VS Code Go 扩展所依赖的工具的完整列表。您可以使用“转到:安装/更新工具”来安装其他工具并更新它们。
使用一般故障排除和调试故障排除指南解决问题。
针对扩展程序的问题提出问题。
发起 GitHub 讨论或在 Stack Overflow 上获取帮助。
在 go.dev/learn 和 golang.org/help 上探索 Go 语言资源。
如果您是 Go 新手,本文将概述 Go 代码组织和基本go
命令。观看“VS Code Go 入门”,了解如何使用 VS Code Go 构建您的第一个 Go 应用程序。
IntelliSense - 在您键入时显示符号结果。
代码导航 - 跳转到或查看符号的声明。
代码编辑 - 支持保存的片段、格式和代码组织以及导入的自动组织。
诊断 - 在您键入或保存时显示构建、审查和 lint 错误。
增强对测试和调试的支持
有关更多详细信息,请参阅完整功能细分。
(代码完成和签名帮助)
除了集成编辑功能之外,该扩展还提供了多个用于处理 Go 文件的命令。您可以通过打开命令面板(在 Linux/Windows 上为Ctrl+Shift+P
,在 Mac 上Cmd+Shift+P
),然后输入命令名称来访问其中任何一个。请参阅此扩展提供的命令的完整列表。
(切换测试文件)
为了更好地语法突出显示,我们建议通过打开 Gopls 的ui.semanticTokens
设置来启用语义突出显示。 "gopls": { "ui.semanticTokens": true }
VS Code Go 扩展支持GOPATH
和 Go 模块模式。
Go 模块用于管理最新版本 Go 中的依赖关系。模块取代了基于GOPATH
的方法来指定在给定构建中使用哪些源文件,并且它们是 go1.16+ 中的默认构建模式。我们强烈推荐以模块模式进行 Go 开发。如果您正在处理现有项目,请考虑迁移到模块。
与传统的GOPATH
模式不同,模块模式不要求工作空间位于GOPATH
下,也不要求使用特定的结构。模块由 Go 源文件的目录树定义,树的根目录中有一个go.mod
文件。
您的项目可能涉及一个或多个模块。如果您正在使用多个模块或不常见的项目布局,则需要使用工作区文件夹来配置工作区。有关更多信息,请参阅支持的工作区布局文档。
如果您想尽早访问新功能和错误修复,可以使用预发布扩展。遵循 vscode 的约定,我们使用扩展版本号的次要版本来区分稳定版本和预发布版本(预发布版本为0.ODD_NUMBER.patch
,稳定版本为0.EVEN_NUMBER.patch
)。
要安装预发布版本,请使用下拉列表选择“安装预发布版本”,或者如果已经安装了 Go 扩展,请使用 Visual Studio Code 扩展管理中的“切换到预发布版本”选项页。有关此机制的更多详细信息,请参阅 Visual Studio Code 的文档。
VS Code Go 扩展依靠 Go 遥测来了解有关扩展和语言服务器 ( gopls
) 的性能和稳定性的见解。 Go Telemetry 数据上传默认是禁用的,可以使用以下命令启用:
go run golang.org/x/telemetry/cmd/gotelemetry@latest on
启用遥测后,语言服务器会将指标和堆栈跟踪上传到 telemetry.go.dev。您可以通过运行以下命令来检查收集了哪些数据并可以上传哪些数据:
go run golang.org/x/telemetry/cmd/gotelemetry@latest view
如果我们得到足够多的采用,这些数据可以显着推进 Go 扩展开发的步伐,并帮助我们满足更高的可靠性标准。例如:
即使使用 VS Code 中的半自动崩溃报告,我们也发现有几个崩溃数周或数月都没有报告。
即使使用一套基准测试,一些性能回归也不会出现在我们的基准测试环境中(例如下面提到的完成错误!)。
即使有很多关于如何改进 gopl 的好主意,我们的资源也是有限的。遥测可以帮助我们确定哪些新功能最重要,以及哪些现有功能没有被使用或运行不佳。
这些只是遥测可以改善 gopl 的几种方法。遥测博客文章系列包含更多内容。
Go 遥测的设计是透明且保护隐私的。了解更多信息,请访问 https://go.dev/doc/telemetry。
Go 扩展由 Go 工具团队的工程师维护,他们积极监控 VS Code Go 和 Go 问题跟踪器。
我们仅支持该扩展的最新稳定版本和预发布版本。
Go 扩展遵循 Go 发布策略,这意味着它正式支持最新的两个主要 Go 版本。 Go 团队竭尽全力支持最后三个主要 Go 版本。
Go 扩展依赖于gopls
和dlv
等工具来实现其核心功能,并且它们有自己的发布策略和时间表。我们仅针对这些工具的最新版本进行测试。
如果您需要使用旧版本的 Go,请检查兼容性页面并手动安装兼容版本的扩展和工具。
我们欢迎您的贡献,并感谢您为改善 VS Code 中的 Go 开发体验所做的努力。如果您想帮助开发 VS Code Go 扩展,请参阅我们的贡献指南,了解如何在本地构建和运行 VS Code Go 扩展并为该项目做出贡献。
该项目遵循 Go 社区行为准则。如果您遇到与行为相关的问题,请发送邮件至[email protected]。
麻省理工学院