在快速发展的软件开发世界中,保持领先是至关重要的。在 Visual Studio 中引入AI,特别是 GitHub Copilot,已经彻底改变了开发人员的编码方式。通过将 Copilot 集成到 Visual Studio 中,您可以利用 AI 来简化工作流程,管理大型代码库,分析异常,甚至生成提交消息。这就像有一个知识渊博的结对程序员在你身边,帮助你提高生产力,更快地迭代,使你的应用程序更可靠。以下是在过去一年中我们想重点介绍的 Visual Studio 中 GitHub Copilot 的一些创新。

内联聊天视图

  有没有想过,你可以把生成式 AI 聊天机器人给你的代码直接放到你的编辑器里?通过内联聊天,您可以在编辑器中与 GitHub Copilot 进行交互!这个功能允许你在编辑器中改进你的代码,这对于询问关于你活动的文件的特定问题是完美的,当 GitHub Copilot 给你代码建议时,你可以看到差异视图。

  要访问内联聊天,您需要一个活跃的 GitHub Copilot 订阅和安装在 Visual Studio 17.8或更高版本中的扩展。要访问内联聊天,在只需在编辑器中点击右键> Ask Copilot,或通过快捷键(Alt+/)。

斜杠命令来指示你的意图

  被误解是最糟糕的!斜杠命令允许您清楚地说明您的提示背后的意图,以便让 GitHub Copilot 没有误解。当学习使用生成式 AI 聊天机器人时,当它不理解你的要求时,总是令人沮丧。通过使用斜杠命令,它们允许您清楚地说明指示背后的意图,以便使 Copilot 没有误解。

  斜杠命令存在于聊天窗口中。输入“/”会弹出一个命令列表,你可以用这些命令来说明你的意图,比如“/explain”用来解释代码,“/doc”用来记录一个方法或文件,等等!

上下文变量来优化你的作用域

  有没有想过 GitHub Copilot 在回答你的问题时引用了什么?上下文变量特性允许您在问题中使用#符号指定解决方案中的文件。当你引用一个文件时,Copilot 可以访问它的内容,并提供与之相关的具体答案。

  【提示】利用我们最新和最好的#Solution将所有文件的上下文包含在您打开的解决方案中,允许您将答案基于其中。注意#Solution只支持c#。例如:“What parts of this #Solution is designated to be a command line interface?”

  例如,你可以问这样的问题:“How does the #Main.cs file work?”或“What is the purpose of the #Calculator.cs file?”然后,Copilot Chat 将根据这些文件的内容提供相关答案。此功能通过消除手动复制和粘贴的需要简化了流程。您可以在一个问题中包含多个文件,以获得更高的效率!

分析和修复测试窗口的失败

  使用 GitHub Copilot,失败和异常分析从未如此简单。这种 AI 辅助功能可以帮助用户分析和修复由于失败的测试假设或在测试执行期间发生的异常而导致的测试失败。这个功能可以在 Test Explorer 中找到,并创建一个讨论线程,允许您与 GitHub Copilot 交互,为您提供解释和代码修复。当存在失败的测试时,“Ask Copilot”链接将出现在测试失败摘要解释中,允许您与 Copilot 进行后续操作。

AI 辅助异常分析

  你有没有想过为什么会出现异常?现在,GitHub Copilot 可以用来协助异常分析,帮助开发人员理解异常发生的原因,并提出解决方法。它收集有关异常的相关信息,包括异常的类型、消息、来自堆栈跟踪的代码片段和局部变量值。这些数据随后被发送给 Copilot 进行初步分析。随后,用户可以与 Copilot 进行进一步对话,讨论错误并探索潜在的解决方案。

分析工具中的自动见解

  由 CPU Usage 和 Instrumentation 分析器标记的自动见解允许您深入了解代码,一般与已知的有问题的模式相关。用户现在可以使用“Ask Copilot”链接获取有关该见解的更详细信息。GitHub Copilot 从见解中获取上下文,并使用它再次提示 Copilot,以便您可以获得有关您已获得的见解的更多信息,并提出后续问题!

重命名建议

  您是否遇到过命名变量、方法或类的问题?您并不孤独。这个功能不仅仅是名字建议,它学习您的标识符使用习惯,并适应您的代码风格,提出无缝集成到代码库中的标识符。

  要在 Visual Studio 中访问此功能,只需选择任意标识符,右键单击,然后选择“Rename”(Ctrl+R, Ctrl+R)。单击重命名建议按钮或使用 Ctrl+Space 快捷键。您将看到一个根据代码上下文定制的命名建议列表。选择最能让您产生共鸣的名字,然后按回车键!

生成的提交消息

  在花了几个小时修复 bug 或更新特性之后,我最不想做的就是绞尽脑汁准确地编写 Git 提交的内容。幸运的是,Copilot 提供了一个解决方案。使用最新的生成的 Git 提交消息特性来简洁地描述您的更改集,并提高提交消息的质量和一致性,从而使代码更易于理解和维护。然后,在提交之前,你可以通过在更改后面添加关键的“why”来改善信息。

  在 Git Changes 窗口中使用新的“Add AI Generated Commit Message”闪光笔图标生成建议。

断点表达式的智能感知

  断点表达式可以帮助开发人员更高效地调试代码。然而,找到最佳的断点表达式可能是一项挑战和耗时的工作。这就是为什么我们在 Visual Studio 中使用 GitHub Copilot Chat ,这是一个 AI 伴侣,可以帮助我们对断点表达式进行智能感知。GitHub Copilot 可以分析我们的代码,并为我们的调试场景建议最佳的断点表达式。这是一个节省时间和精力的好方法!

  该特性针对的是创建高级断点(如条件断点和跟踪点)的用户。使用断点周围的代码上下文,GitHub Copilot 建议用于断点条件和日志语句的潜在表达式。注意:智能感知断点建议只支持 C#。

死锁分析

  死锁可能会在程序中导致严重的问题,并且检测和解决起来可能很繁琐。在 GitHub Copilot 中,死锁被揭开了神秘的面纱,通过在 Exception Helper 中显示它们,使其对用户来说变得更加明显。异常助手现在将包括一个“Ask Copilot”链接,在这个链接中,Copilot 将获取你的代码上下文,以及异常助手积累的信息,并允许用户继续向 Copilot 询问如何解决死锁。

我该如何开始呢?

  所有这些特性以及更多特性现在都可以在最近发布的 Visual Studio 17.9中使用。那么,为什么还要等待呢?今天在 Visual Studio 中安装 Copilot 和 Copilot Chat,体验编程的未来!

提供反馈并保持联系

  我们感谢您花时间报告问题/建议,并希望您在使用 Visual Studio 时继续给我们反馈,告诉我们您喜欢什么以及我们可以改进什么。

  您的反馈对于帮助我们使 Visual Studio 成为最好的工具至关重要!您可以通过开发者社区与我们分享反馈,通过发送反馈来报告问题或分享您的建议,推动对新功能或现有功能的改进。

  通过在 YouTube, Twitter, LinkedIn, Twitch 和 Microsoft Learn 上关注我们与 Visual Studio 团队保持联系。

原文链接:https://devblogs.microsoft.com/visualstudio/github-copilot-in-visual-studio-a-recap-of-2023/

 

【译】Visual Studio 中的 GitHub Copilot:2023年回顾的更多相关文章

  1. 在Visual Studio中使用GitHub(使用篇)

    一.准备工具 上一篇中我们已经安装了Git Extensions和Tortoisegit.在这里我们要为Visual Studio安装一个插件,专门用于Git. Git Source Control ...

  2. Visual Studio中使用GitHub

    一.简介 GitHub被微软收购后免费开放了私人仓库,这对个人或小型团队来说简直是福音.GitHub高效免费,无论是团队代码管理还是DevOps都不再话下,特别是对于想要开放研究成果提高知名度的团队或 ...

  3. [译]如何在visual studio中调试Javascript

    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...

  4. 如何在Visual Studio中选择C++和C#的编译器版本

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何在Visual Studio中选择C++和C#的编译器版本.

  5. 在Visual Studio中使用Pseudovariables来帮助调试

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:在Visual Studio中使用Pseudovariables来帮助调试.

  6. 推荐一个可以直接在Visual Studio中看到complexity的插件CodeMaid

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:推荐一个可以直接在Visual Studio中看到complexity的插件CodeMaid.

  7. (15)Visual Studio中使用PCL项目加入WCF WebService参考

    原文 Visual Studio中使用PCL项目加入WCF WebService参考 Visual Studio中使用PCL项目加入WCF WebService参考 作者:Steven Chang 2 ...

  8. Dynamics CRM2013 在Visual Studio中开启脚本的Xrm.Page智能提示

    前面篇博文http://blog.csdn.net/vic0228/article/details/49663751提到了通过引用XrmPage-vsdoc.js文件来启用Xrm.Page的智能提示, ...

  9. Git Extensions 和 Tortoisegit 到底是什么?Git For VS(Git For Visual Studio)(Visual Studio 中使用 Git)

    前言: 我们使用 Git 作为版本控制的朋友们,一定都熟悉 Git Extensions 和 Tortoisegit 两款工具,但是对于初学者,可能就不那么了解了. 当然如果有幸,你接触过 SVN , ...

  10. 教程:在 Visual Studio 中开始使用 Flask Web 框架

    教程:在 Visual Studio 中开始使用 Flask Web 框架 Flask 是一种轻量级 Web 应用程序 Python 框架,为 URL 路由和页面呈现提供基础知识. Flask 被称为 ...

随机推荐

  1. Huggingface初上手即ERNIE-gram句子相似性实战

    大模型如火如荼的今天,不学点语言模型(LM)相关的技术实在是说不过去了.只不过由于过往项目用到LM较少,所以学习也主要停留在直面--动眼不动手的水平.Huggingface(HF)也是现在搞LM离不开 ...

  2. Nebula Graph 1.0 Release Note

    Nebula Graph 1.0 发布了.作为一款开源分布式图数据库,Nebula Graph 1.0 版本旨在提供一个安全.高可用.高性能.具有强表达能力的查询语言的图数据库. 基本功能 DDL & ...

  3. 《Document-level Relation Extraction as Semantic Segmentation》论文阅读笔记

    原文 代码 摘要 本文研究的是文档级关系抽取,即从文档中抽取出多个实体之间的关系.现有的方法主要是基于图或基于Transformer的模型,它们只考虑实体自身的信息,而忽略了关系三元组之间的全局信息. ...

  4. 9、mysql的并发参数调整

    从实现上来说,MySQL Server 是多线程结构,包括后台线程和客户服务线程.多线程可以有效利用服务器资源,提高数据库的并发性能.在Mysql中,控制并发连接和线程的主要参数包括 max_conn ...

  5. Toyota Programming Contest 2024#2(AtCoder Beginner Contest 341)D - Only one of two(数论、二分)

    目录 链接 题面 题意 题解 代码 总结 链接 D - Only one of two 题面 题意 求第\(k\)个只能被\(N\)或\(M\)整除的数 题解 \([1,x]\)中的能被\(n\)整除 ...

  6. Docker下搭建Redis集群并实现动态扩/缩容

    一.Redis集群方案的简单介绍 Redis集群的方案一般分为三种: 哈希取余分区 一致性哈希算法分区 哈希槽分区(本文介绍的就是这种) 1.哈希取余分区: 优点: 简单粗暴,只要提前预估好数据量,然 ...

  7. Zabbix自动发现:python-json模块应用介绍

    一.JSON模块介绍 json模块是python内置的库,其主要功能是将序列化数据从文件里读取出来或者存入文件.该模块有四个方法:dump().load().dumps().loads(),其中dum ...

  8. https://pengchenggang.github.io/vuejsdev-com-github 备份发布

    https://pengchenggang.github.io/vuejsdev-com-github 备份发布 现在还没有解决的就是 开clash,代码提交不上去,只能关了提,但是关了提交,也得赶运 ...

  9. websocket服务器的创建

    就这上篇文章的代码,我们会继续实现以下websocket的协议. 为什么要使用websocket呢? 它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平 ...

  10. 【atcoder abc276 】(a* 搜索)

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...