在VS Code中编程

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

您可以从VS Code Marketplace安装Go扩展。

智能感知

自动完成

当您输入Go文件时,您可以看到IntelliSense为您提供建议的完成。这甚至适用于当前,导入和尚未导入的包中的成员。只需键入后面的任何包名称.,您将获得相应包成员的建议。

通过设置go.autocompleteUnimportedPackagestrue在你的设置,你也可以得到你可以导入包建议。选择其中一个建议,将对所选包的导入添加到您的文件中。

提示:使用^ Space来手动触发建议。

悬停信息

将鼠标悬停在任何变量,函数或结构上将为您提供有关该项目的信息,例如文档,签名等。

默认情况下,扩展程序使用godefgodoc获取此信息。您可以gogetdoc通过更改“ go.docsTool用户”或“工作区设置”中的设置来选择使用。

签名帮助

当您打开(while调用函数时,弹出窗口会为该函数提供签名帮助。当您继续键入参数时,提示(下划线)将移至下一个参数。

提示:当光标位于函数调用中时,使用⇧⌘Space手动触发签名帮助()

扩展程序的签名帮助也使用godefgodoc。您可以gogetdoc通过更改“ go.docsTool用户”或“工作区设置”中的设置来选择使用。

代码导航

代码导航功能在编辑器的上下文菜单中提供。

  • 转到定义 F12 - 转到类型定义的源代码。
  • 皮克定义 ⌥F12 -弹出一个窗口,皮克与类型定义。
  • 查找所有参考文献 ⇧F12 - 查找该类型的所有参考文献。

您可以使用命令选项板(⇧⌘P)中的“ 转到符号”命令通过符号搜索进行导航。

  • 转到文件中的符号 - ⇧⌘O
  • 转到工作区中的符号 - ⌘T

您还可以使用Go:Toggle Test File命令在Go文件及其测试实现之间来回导航。

建造,棉绒和兽医

在保存时,可以运行Go扩展go buildgo vet并在当前文件的包上选择linting工具(golintgometalinter)。您可以通过以下设置控制这些功能:

  • go.buildOnSave
  • go.buildFlags
  • go.vetOnSave
  • go.vetFlags
  • go.lintOnSave
  • go.lintFlags
  • go.lintTool
  • go.testOnSave

运行上述任何/所有的错误和警告将在编辑器中显示红色/绿色波浪线。这些也显示在“ 问题”面板中(“ 查看” >“ 问题”)。

格式化

您可以使用⇧⌥F格式化Go文件,也可以通过命令选项板或编辑器中的上下文菜单运行“ 格式化文档”命令来格式化。

默认情况下,保存Go文件时会运行格式化。您可以通过设置go.formatOnSave为禁用此行为false

您可以在三种格式工具选择:gofmtgoreturnsgoimports通过改变设置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编程的更多相关文章

  1. 如何在 VS Code 中搭建 Qt 开发环境

    前言 VS Code 高大上的界面.强大的智能联想和庞大的插件市场,着实让人对他爱不释手.虽然可以更改 Qt Creator 的主题,但是 Qt Creator 的代码体验实在差劲.下面就来看看如何在 ...

  2. 如何在 VS Code 中为 Java 类生成序列化版本号

    前言 IDEA 提供自动生成序列化版本号的功能,其实 VS Code 也可以,只是默认关闭了这个功能,下面就来看看如何开启这个功能吧. 配置过程 首先需要保证 VS Code 上安装了提供 Java ...

  3. 如何在 Qt Creator 中应用 one dark pro 主题

    前言 Qt Creator 自带了几款主题,但是并不好看.在博客 <Qt Creator打造VScode one dark pro主题配色> 中给出了 one dark pro 主题的配置 ...

  4. 如何在"Visual Studio Code"中使用" Git" 进行版本控制

    如何在"Visual Studio Code"中使用" Git" 进行版本控制 本来认为此类教程,肯定是满网飞了.今天首次使用VS Code的Git功能,翻遍了 ...

  5. 解决vs code中golang插件依赖安装失败问题

    解决vs code中golang插件依赖安装失败问题 Installing github.com/nsf/gocode SUCCEEDED Installing github.com/uudashr/ ...

  6. 解决 VS Code 中 golang.org 被墙导致的 Go 插件安装失败问题

    微软官方开发的 Go for Visual Studio Code 插件为 Go 语言 提供了丰富的支持.在 VS Code 中首次打开 Go 工作区后,VS Code 会自动检测当前开发环境为 Go ...

  7. 在Visual Studio Code中开发Office Add-in

    作者:陈希章 发表于 2017年7月13日 上一篇 我介绍了如何在Visual Studio中开发Office Add-in,因为有标准的项目模板,一系列配套的工具,尤其是自带的一键调试功能,可以让开 ...

  8. 如何在 Visual Studio 中使用 Git 同步代码到 CodePlex

    开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ...

  9. [Laravel-Swagger]如何在 Laravel 项目中使用 Swagger

    如何在 Laravel 项目中使用 Swagger http://swagger.io/getting-started/ 安装依赖 swagger-php composer require zirco ...

随机推荐

  1. Java EE之分页器设计

    由于数据库实训的课程设计,在做项目过程中,需要使项目更加规范的结构和各层间责任分离.无疑地,分页器是其中之一. 1. 本文仅陈述分页器如何实现,关于分页器的其他概念,请自行搜索其他网络资源. 2. 关 ...

  2. 【PE结构】由浅入深PE基础学习-菜鸟手动查询导出表、相对虚拟地址(RVA)与文件偏移地址转换(FOA)

    0 前言 此篇文章想写如何通过工具手查导出表.PE文件代码编程过程中的原理.文笔不是很好,内容也是查阅了很多的资料后整合出来的.希望借此加深对PE文件格式的理解,也希望可以对看雪论坛有所贡献.因为了解 ...

  3. 在SecureCRT中做make menuconfig乱码

      不能在SecureCRT中做(显示为乱码),从高手那里学来一招,解决了这个问题: options--terminal--emulation-- xterm  ansi color1.先设置终端为x ...

  4. windows上python上传下载文件到linux服务器指定路径【转】

    从windows上传文件到linux,目录下的文件夹自动创建 #!/usr/bin/env python # coding: utf-8 import paramiko import datetime ...

  5. SharePoint 2010 使用Install-SPSolution部署wsp包状态一直是”正在部署”

    1.服务器场信息如下: 2.使用下面命令部署,状态一直是"正在部署" Install-SPSolution –Identity xxxx.wsp –WebApplication h ...

  6. 大数据处理算法--Bloom Filter布隆过滤

    1. Bloom-Filter算法简介 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出.它可以用于检索一个元素是否在一个集合中. Bloom Filter(BF)是一种空间效率很 ...

  7. javascript之随手笔记

    1.toFixed()方法 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. 链接 2..在js中,{}等于new Object(),都是在堆中创建一块区域

  8. 【ES】学习6-多字段搜索1

    本系列的笔记都来自:https://elasticsearch.cn/book/elasticsearch_definitive_guide_2.x/multi-field-search.html 下 ...

  9. 【linux】centos6.9安装gearman

    1.确认yum源没问题,如果有问题,参照这里更换 2. yum install -y boost-devel gperf libevent-devel libuuid-devel yum instal ...

  10. noip 2017 时间复杂度

    自认为是少有的复杂的代码 这题思想很简单,就是大模拟 对于for循环,一行读入4个字符串,然后分类讨论: ①:如果是一个正常的O(n),那么累计n的指数加1 ②:如果是一个常数级别的,那么继续循环,但 ...