通过在 Visual Studio 中设置 GitHub Copilot Chat 的上下文来获取更好的答案

你可以使用 Visual Studio 中的 GitHub Copilot Chat 获取编码信息和支持,例如语法、编程概念、特定于上下文的代码帮助、测试用例、调试等,而无需离开 IDE。 Copilot Chat 集成到 Visual Studio 中,这意味着它可以通过从 IDE 中收集有用的线索来了解你正在处理的内容。

在本文中,你将了解如何通过向 Copilot Chat 提供更多信息来获得更好的答案,包括:

  • 使用斜杠命令快速指定常见任务,例如使用 /explain 来获取代码解释。
  • 使用引用将聊天范围限定为特定文件。
  • 查看 Copilot 用来生成答案的
  • 对每个 Copilot 聊天使用不同的线程,以便可以在每个线程中维护不同的上下文。

详细了解 Visual Studio 中的 AI 辅助开发,以及如何在 Visual Studio 中使用 Copilot Chat

先决条件

若要开始在 Visual Studio 中使用 GitHub Copilot Chat,需要:

在 Copilot Chat 中使用斜杠命令执行常见任务

Copilot Chat 中的斜杠命令可帮助你快速设置常见开发任务的意向。 通过使用特定的斜杠命令形成问题,可以获得更好的答案,而不必编写很长的问题。

可以在聊天窗口中使用斜杠命令,或者在你考虑修改的代码中使用内联代码辅助直接内联询问。 帮助对在编辑器中打开的代码文件的命令进行修改或添加的命令在内联代码助手和聊天窗口中都有效,而用于更常规编码问题的命令仅在聊天窗格中有效。

命令 使用情况 聊天窗口 内联聊天
/doc 为指定代码或所选代码添加注释。
示例:
- /doc DeleteBasketAsync method in BasketService.cs
- 选择所需的代码并输入 /doc
/explain 获取代码解释。

示例:
- /explain the AddItemToBasket method in BasketService.cs
- 选择所需的代码并输入 /explain
/fix 为所选代码中的问题建议修补程序。
示例:
- /fix the SetQuantities method in BasketService.cs
- 选择所需的代码并输入 /fix
/generate 生成代码以回答指定的问题。
示例: /generate code to add two numbers in Calculator.cs
/help 获取有关使用 Copilot Chat 的帮助。
示例: /help
/optimize 分析和改进所选代码的运行时间。
示例:
- /optimize the AddItemToBasket method in BasketService.cs
- 选择所需的代码并输入 /optimize
/tests 为所选代码创建单元测试。
示例:选择所需的代码并输入 /tests

内联聊天视图和聊天窗口中斜杠命令的屏幕截图。

引用:将 Copilot 结果范围限定为特定文件或整个解决方案

可以用自然语言提出与编码相关的问题,GitHub Copilot Chat 将在 Visual Studio 中打开的代码库上下文中回答这些问题。 通过参考资料,可以更具体地了解希望 Copilot 在回答问题时考虑的信息。 通过在代码库中选择特定上下文,可以轻松地形成更好的问题,而无需编写或粘贴较长的信息。 指定上下文还可以让 Copilot 为你提供更相关的回答。

若要轻松引用文件,只需在文件名开头添加 # 符号即可。 例如,如果你有一个名为 BasketService.cs 的文件,请在聊天中将其引用为 #BasketService.cs

Copilot Chat 中引用的屏幕截图。

使用 #solution 来引用 IDE 中处于活动状态的解决方案,从而获取上下文。

在 Copilot Chat 中引用解决方案上下文的屏幕截图。

以下是使用引用进行上下文控制的一些示例:

示例 Copilot 用于提出问题的上下文
#MyFile.cs: 66-72 的用途是什么? 文件的确切部分
#BasketService.cs 中的测试在哪里? BasketService.cs
/explain the AddItemToBasket method in #BasketService.cs BasketService.cs 中的 AddItemToBasket 方法
此 #solution 中是否存在删除购物车方法 在 IDE 中打开的当前解决方案

查看 Copilot Chat 使用的源

Copilot Chat 会在每个结果后显示它使用的上下文,以便你可以了解在回答你的问题时考虑了哪些内容。 当你向 Copilot Chat 提问并在聊天窗口中得到答复时,答复下方会显示“参考”下拉列表。 “参考”下拉列表中的条目会显示 Copilot Chat 生成该答复时引用的上下文。 此信息可以帮助你修改问题以获得更好、更相关的答案。

Copilot Chat 中“已用引用”下拉列表的屏幕截图。

组织:将与 Copilot 的聊天隔离到线程中

如果在编码时广泛使用 Copilot Chat 来提问,则可以以一种切入主题的方式组织对话。 适用于 Visual Studio 的 Copilot Chat 现在提供了一种简单的方法来启动新对话(线程),使其专注于手头的任务,并保持上下文清晰,以便答案基于相关的历史记录。

可以通过在聊天窗口中选择“创建新话题”来启动新话题。

Copilot Chat 中“创建新线程”图标的屏幕截图。

可以在多个正在进行的线程之间进行选择,以便为问题提供正确的历史上下文。

Copilot Chat 中正在运行的线程之间进行切换的屏幕截图。