语言特色
智能感知
- 键入时自动完成符号(使用gocode)
- 键入时的签名帮助(使用gogetdoc或godef + godoc)
- 将鼠标悬停在符号上的快速信息(使用gogetdoc或godef + godoc)
代码导航
- 转到或Peek定义符号(使用gogetdoc或godef + godoc)
- 查找符号的参考和接口的实现(使用guru)
- 转到文件中的符号或查看文件大纲(使用go-outline)
- 转到工作区中的符号(使用go-symbols)
代码编辑
- 用于快速编码的Code Snippets
- 格式化文件代码保存以及手动格式化(使用goreturns或goimports或gofmt)
- 符号重命名(使用gorename。注意:对于重命名后撤消到Windows中工作,你需要在你的路径中使用diff工具)
- 将导入添加到当前文件(使用gopkgs)
- 在struct字段上添加/删除标签(使用gomodifytags)
- 为接口生成方法存根(使用impl)
- 使用默认值填充结构文字(使用fillstruct)
诊断
- Build-on-save编译代码并显示构建错误。 (使用go build和go test)
- Vet-on-save运行go vet并将错误显示为警告
- Lint-on-save将linting错误显示为警告(使用golint,gometalinter,megacheck,golangci-lint或revive)
- 键入时使用语义/语法错误报告(使用gotype-live)
测试
- 使用命令或代码段在光标,当前文件,当前包中,在整个工作区中运行测试
- 使用命令或代码段在游标下运行基准
- 根据需要或在包中运行测试后显示代码覆盖率。
- 生成单元测试骨架(使用gotests)
调试
- 调试代码,二进制文件或测试(使用delve)
有关更多读取使用VS代码调试Go代码。
有关更多读取使用VS代码调试Go代码。
远程调试
要使用VS Code进行远程调试,请阅读远程调试。
其他
安装/更新所有相关的Go工具
上传到Go Playground(使用goplay)
linter
linter是一种提供编码风格反馈和建议的工具。默认情况下,此扩展程序使用官方golint作为linter。
命令
除了集成的编辑功能外,该扩展还在Command Palette中提供了几个用于处理Go文件的命令:
Go:添加Import以从Go上下文中的包列表中添加导入
Go:当前GOPATH以查看您当前配置的GOPATH
Go:在光标处测试以在活动文档中的当前光标位置处运行测试
Go:Test Package在包含活动文档的包中运行所有测试
Go:测试文件以在当前活动文档中运行所有测试
Go:Test Previous运行以前运行的测试命令
Go:在Workspace中测试所有包以在当前工作空间中运行所有测试
Go:为包生成单元测试生成当前包的单元测试
Go:为文件生成单元测试生成当前文件的单元测试
Go:为函数生成单元测试生成当前文件中所选函数的单元测试
Go:安装工具安装/更新扩展所依赖的所有Go工具
Go:添加标签将已配置的标签添加到选定的结构字段。
Go:删除标签从选定的结构域中删除已配置的标签。
Go:生成接口存根为给定接口生成方法存根
Go:Fill Struct使用默认值填充struct literal
Go:在Go Playground上运行将当前选择或文件上传到Go Playground
您可以从命令托盘访问所有上述命令(Cmd + Shift + P或Ctrl + Shift + P)。
其中很少一部分在编辑器上下文菜单中也可用作实验性功能。要控制在编辑器上下文菜单中显示哪些命令,请更新go.editorContextMenuCommands设置。