在快速发展的软件开发世界中,保持领先是至关重要的。在 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. 【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?

    问题描述 在Azure Redis服务中,如何实现只允许Azure App Service访问呢? 问题解答 Azure Redis 开启 防火墙的功能,并在防火墙中添加上App Service的出口 ...

  2. 【Azure 应用服务】VS2019发布应用到正在运行的App Service时失败问题的解决

    问题描述 在VS 2019中配置号App Service的Publish Profile后,发布应用出现错误.根据VS 2019中的输出消息可知有文件正在运行中,无法被替换,所以发布失败. 问题解决 ...

  3. Redisson 框架中的分布式锁

    实现分布式锁通常有三种方式:数据库.Redis 和 Zookeeper.我们比较常用的是通过 Redis 和 Zookeeper 实现分布式锁.Redisson 框架中封装了通过 Redis 实现的分 ...

  4. RocketMQ(11) 消息重试机制和死信队列

    七.消息发送重试机制 1 说明 Producer对发送失败的消息进行重新发送的机制,称为消息发送重试机制,也称为消息重投机制. 对于消息重投,需要注意以下几点: 生产者在发送消息时,若采用同步或异步发 ...

  5. VC-MFC(2) 随笔笔记

    1 //点击按钮出来对话框---------------- 2 3 1.首先添加 对话框(标识符) 4 2.在点击按钮出来第二个对话框,直接鼠标右键 新建 类 5 3.在.CPP添加新建类的 头文件 ...

  6. 在anaconda中为jupyter安装代码自动补全或代码自动提示功能,jupyter nbextensions不显示拓展,另附格式化代码插件的安装方法

    操作步骤 进入命令行环境.我使用的是conda.有两种方式进入命令行. 方法1:通过anconda navigator界面,选择environments,选择对应环境名,选择open terminal ...

  7. Rtsp转Flv在浏览器中播放

    目录 概述 环境 项目目录清单 项目搭建步骤 引入相关npm依赖 实例化一个express应用 创建WebsocketServer并解析rtsp 使用flv播放 浏览器中测试 代码 引用 概述 众所周 ...

  8. guava和redis 都是缓存用的,不过redis要起服务,guava不用起服务

    guava和redis 都是缓存用的,不过redis要起服务,guava不用起服务

  9. Android Webview判断网页加载完毕

    原文: Android Webview判断网页加载完毕 - Stars-One的杂货小窝 书接上文,在Android WebView获取html源码 - Stars-One的杂货小窝此文讲到没有一个可 ...

  10. 使用CEF(五)— 在QT中集成CEF(2)基于CLion+CMake搭建环境

    在前文<使用CEF(四)- 在QT中集成CEF(1):基本集成>中,我们使用VS+QT的插件搭建了一个基于QT+CEF的项目.时过境迁,笔者目前用的最多的就是CLion+CMake搭建C/ ...