如何在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.buildOnSave
go.buildFlags
go.vetOnSave
go.vetFlags
go.lintOnSave
go.lintFlags
go.lintTool
go.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 ...
随机推荐
- django错误笔记——TypeError: view must be a callable or a list/tuple in the case of include().解决办法
django增加用户认证模块时,总是提醒模块的url.py中 url(r'^login/$', 'django.contrib.auth.views.login', name='login'),出错: ...
- 内置函数id,返回内存地址
a = 2 def b(): a = 3 print id(a) class c(): def __init__(self): print id(c) d =c() print id(d) print ...
- android彻底关闭应用程序方法
Android SDK > 7(Android2.1)之后,即Android2.2及以后版本彻底关闭应用的方法,目前试验只有一下方法有效: Intent startMain = new Inte ...
- input框的输入限制
1.输入数字 <input onKeyUp="value=value.replace(/[^\d|chun]/g,'')"> 2.只输入中文 <input typ ...
- mac系统在配置navicat时连接数据的时候提示can't connect to mysql server on '127.0.0.1'
新建数据库连接的时候,将默认的端口号更改掉,改为3307,即可解决这个问题. 具体是为什么我也不清楚,我自己想的一个可能就是mac电脑 上的某个程序可能已经占用了3306那个默认的端口,因 ...
- Principal components analysis(PCA):主元分析
在因子分析(Factor analysis)中,介绍了一种降维概率模型,用EM算法(EM算法原理详解)估计参数.在这里讨论另外一种降维方法:主元分析法(PCA),这种算法更加直接,只需要进行特征向量的 ...
- Linux搜索查找类指令
⒈find [搜索范围] [选项] find指令将从指定目录下递归的遍历其各个子目录,将满足条件的文件或者目录显示在终端 选项说明: 选项 功能 -name<查询方式> 按照指定的文件名查 ...
- EXT3.3.1在IE9 IE10click事件 失效怎么解决
各位Ext君有福了. var treePanel = new Ext.tree.TreePanel({ id:'treePanel_'+(menuIndex++),//让菜单id可控 title: t ...
- js 鼠标拖拽元素
基础知识 event.clientX.event.clientY 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条.IE事件和标准事件都定义了这2个属性 event. ...
- STOMP Over WebSocket
Show Table of Contents What is STOMP? STOMP is a simple text-orientated messaging protocol. It defin ...