如何在VS Code中进行golang编程
在VS Code中编程
使用Visual Studio Code的Go扩展,您可以获得诸如IntelliSense,代码导航,符号搜索,括号匹配,片段等语言功能,这些功能将帮助您进行Golang开发。

您可以从VS Code Marketplace安装Go扩展。
智能感知
自动完成
当您输入Go文件时,您可以看到IntelliSense为您提供建议的完成。这甚至适用于当前,导入和尚未导入的包中的成员。只需键入后面的任何包名称.,您将获得相应包成员的建议。
通过设置go.autocompleteUnimportedPackages到true在你的设置,你也可以得到你可以导入包建议。选择其中一个建议,将对所选包的导入添加到您的文件中。
提示:使用^ Space来手动触发建议。
悬停信息
将鼠标悬停在任何变量,函数或结构上将为您提供有关该项目的信息,例如文档,签名等。

默认情况下,扩展程序使用godef和godoc获取此信息。您可以gogetdoc通过更改“ go.docsTool用户”或“工作区设置”中的设置来选择使用。
签名帮助
当您打开(while调用函数时,弹出窗口会为该函数提供签名帮助。当您继续键入参数时,提示(下划线)将移至下一个参数。

提示:当光标位于函数调用中时,使用⇧⌘Space手动触发签名帮助
()。
扩展程序的签名帮助也使用godef和godoc。您可以gogetdoc通过更改“ go.docsTool用户”或“工作区设置”中的设置来选择使用。
代码导航
代码导航功能在编辑器的上下文菜单中提供。
- 转到定义 F12 - 转到类型定义的源代码。
- 皮克定义 ⌥F12 -弹出一个窗口,皮克与类型定义。
- 查找所有参考文献 ⇧F12 - 查找该类型的所有参考文献。
您可以使用命令选项板(⇧⌘P)中的“ 转到符号”命令通过符号搜索进行导航。
- 转到文件中的符号 - ⇧⌘O
- 转到工作区中的符号 - ⌘T
您还可以使用Go:Toggle Test File命令在Go文件及其测试实现之间来回导航。
建造,棉绒和兽医
在保存时,可以运行Go扩展go build,go vet并在当前文件的包上选择linting工具(golint或gometalinter)。您可以通过以下设置控制这些功能:
go.buildOnSavego.buildFlagsgo.vetOnSavego.vetFlagsgo.lintOnSavego.lintFlagsgo.lintToolgo.testOnSave
运行上述任何/所有的错误和警告将在编辑器中显示红色/绿色波浪线。这些也显示在“ 问题”面板中(“ 查看” >“ 问题”)。
格式化
您可以使用⇧⌥F格式化Go文件,也可以通过命令选项板或编辑器中的上下文菜单运行“ 格式化文档”命令来格式化。
默认情况下,保存Go文件时会运行格式化。您可以通过设置go.formatOnSave为禁用此行为false。
您可以在三种格式工具选择:gofmt,goreturns并goimports通过改变设置go.formatTool。
测试
您可以通过在命令选项板中键入“Go:test”来探索许多与测试相关的命令。

上面的前三个可用于为当前包,文件或光标中的函数生成测试骨架gotests。最后几个可用于在当前包,文件或光标中运行测试go test。还有一个获取测试覆盖率的命令。
导入包
运行命令Go:Add Import以获取可导入Go文件的软件包列表。选择一个,它将添加到Go文件的导入块中。
重命名符号
您可以使用F2重命名符号,也可以在编辑器的上下文菜单中运行“ 重命名符号”命令。
调试
Go扩展允许您调试Go代码。您需要手动安装Delve调试器作为先决条件。使用VS Code阅读调试Go代码,了解安装步骤,远程调试信息和故障排除指南。
下一步
这是一个简短的概述,显示了VS Code中的Go扩展功能。有关更多信息,请参阅Go扩展自述文件中提供的详细信息。
要及时了解Go扩展的最新功能/错误修复,请参阅CHANGELOG。
如果您有任何问题或功能请求,请随时在Go扩展回购中登录。
如果您想了解有关VS Code的更多信息,请尝试以下主题:
如何在VS Code中进行golang编程的更多相关文章
- 如何在 VS Code 中搭建 Qt 开发环境
前言 VS Code 高大上的界面.强大的智能联想和庞大的插件市场,着实让人对他爱不释手.虽然可以更改 Qt Creator 的主题,但是 Qt Creator 的代码体验实在差劲.下面就来看看如何在 ...
- 如何在 VS Code 中为 Java 类生成序列化版本号
前言 IDEA 提供自动生成序列化版本号的功能,其实 VS Code 也可以,只是默认关闭了这个功能,下面就来看看如何开启这个功能吧. 配置过程 首先需要保证 VS Code 上安装了提供 Java ...
- 如何在 Qt Creator 中应用 one dark pro 主题
前言 Qt Creator 自带了几款主题,但是并不好看.在博客 <Qt Creator打造VScode one dark pro主题配色> 中给出了 one dark pro 主题的配置 ...
- 如何在"Visual Studio Code"中使用" Git" 进行版本控制
如何在"Visual Studio Code"中使用" Git" 进行版本控制 本来认为此类教程,肯定是满网飞了.今天首次使用VS Code的Git功能,翻遍了 ...
- 解决vs code中golang插件依赖安装失败问题
解决vs code中golang插件依赖安装失败问题 Installing github.com/nsf/gocode SUCCEEDED Installing github.com/uudashr/ ...
- 解决 VS Code 中 golang.org 被墙导致的 Go 插件安装失败问题
微软官方开发的 Go for Visual Studio Code 插件为 Go 语言 提供了丰富的支持.在 VS Code 中首次打开 Go 工作区后,VS Code 会自动检测当前开发环境为 Go ...
- 在Visual Studio Code中开发Office Add-in
作者:陈希章 发表于 2017年7月13日 上一篇 我介绍了如何在Visual Studio中开发Office Add-in,因为有标准的项目模板,一系列配套的工具,尤其是自带的一键调试功能,可以让开 ...
- 如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ...
- [Laravel-Swagger]如何在 Laravel 项目中使用 Swagger
如何在 Laravel 项目中使用 Swagger http://swagger.io/getting-started/ 安装依赖 swagger-php composer require zirco ...
随机推荐
- python学习笔记:"爬虫+有道词典"实现一个简单的英译汉程序
1.有道的翻译 网页:www.youdao.com Fig1 Fig2 Fig3 Fig4 再次点击"自动翻译"->选中'Network'->选中'第一项',如下: F ...
- LOJ 3089: 洛谷 P5319: 「BJOI2019」奥术神杖
题目传送门:LOJ #3089. 题意简述: 有一个长度为 \(n\) 的母串,其中某些位置已固定,另一些位置可以任意填. 同时给定 \(m\) 个小串,第 \(i\) 个为 \(S_i\),所有位置 ...
- python3字符串与文本处理
每个程序都回涉及到文本处理,如拆分字符串.搜索.替换.词法分析等.许多任务都可以通过内建的字符串方法来轻松解决,但更复杂的操作就需要正则表达式来解决. 1.针对任意多的分隔符拆分字符串 In [1]: ...
- caffe-win10-cifar10另
上一篇主要以bat形式实现了leveldb形式的cifar10,因为对于shell脚本不甚熟悉,所以这次专门利用.sh调用来实现lmdb形式的cifar10. 1.下载数据 同上一篇. 2.数据转换和 ...
- class_create(),device_create自动创建设备文件结点【转】
本文参考来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhenwenxian/archive/2010/03/28/5424434.aspx 本文转自:http://ww ...
- Linux内核驱动--硬件访问I/O【原创】
寄存器与内存 寄存器与内存的区别在哪里呢? 寄存器和RAM的主要不同在于寄存器操作有副作用(side effect或边际效果): 读取某个地址时可能导致该地址内容发生变化,比如很多设备的中断状态寄存器 ...
- Ajax jsonp 跨域请求实例
跨域请求 JSONP的缺点则是:它只支持GET请求而不支持POST等其它类型的HTTP请求:它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题. $. ...
- yum install oracle-validated
背景 当时心血来潮要在linux搞oracle,可一顿折腾,大约两个周时间,主要是各种环境的检测麻烦,在redhat上操作也不如centos有利. 命令 yum install oracle-vali ...
- centos7使用haproxy1.7.5实现反向代理负载均衡实战
使用haproxy实现反向代理负载均衡实战环境准备:两台虚拟机 # yum install -y gcc glibc gcc-c++ make screen tree lrzsz node1源码编译安 ...
- cacti系列(一)之cacti的安装及配置监控mysql服务
简介 Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数.它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构 ...