🚀 在 VS Code 中

Copilot 聊天上下文

本文介绍了如何在 Visual Studio Code 中向 Copilot 聊天提示添加上下文,以帮助 Copilot 为您提供最佳和最相关的答案。Copilot 支持不同的上下文类型,包括文件、符号、终端命令输出等等。

Copilot 尝试根据您的自然语言聊天提示来确定您的问题的意图和范围。为了帮助 Copilot 为您提供最佳和最相关的答案,向聊天提示添加上下文让 Copilot 自动查找正确的文件

向聊天提示添加上下文

有几种方法可以向聊天提示添加上下文

  • VS Code 会自动将当前活动编辑器添加为上下文。如果您在编辑器中选择了代码块,则仅将该选择内容添加为上下文。

    您可以通过选择上下文项旁边的禁用(眼睛)图标来禁用为当前请求添加活动编辑器。使用chat.implicitContext.enabled 设置来配置是否应为所有请求自动添加活动编辑器。

    Screenshot of VS Code Copilot Chat view, showing the current editor selection as context.

  • 选择附加上下文(回形针)图标(Copilot 聊天)或添加文件按钮(Copilot 编辑),然后从快速选择中选择一种上下文类型。

    Screenshot of VS Code Copilot Chat view, showing the Attach context button and context Quick Pick.

    您可以附加预定义的上下文类型,例如代码库终端选择,或者从工作区中选择文件、文件夹或符号。

    提示

    要从附件快速选择中快速添加多个项目,请使用 向上向下 键来导航列表,使用 向右 键将项目添加为上下文,然后对其他项目重复此操作。

  • 在资源管理器或搜索视图中的文件上使用上下文菜单Copilot > 添加到聊天,或在编辑器中对文本选择使用添加到聊天选择

  • 在聊天提示中键入 # 字符以使用聊天变量引用上下文。

    例如,使用 #selection 将当前编辑器选择添加到您的聊天提示,使用 #file 添加工作区文件,或使用 #sym 添加工作区中的符号。

    Screenshot of VS Code Copilot Chat view, showing the chat variable picker.

    提示

    键入 # 并将其用作 IntelliSense 触发器,以选择文件或符号。

  • 将编辑器选项卡或资源管理器视图、搜索视图或编辑器面包屑中的文件或文件夹拖放到“聊天”视图上。

注意

如果可能,在附加文件时将包含文件的完整内容。如果文件太大而无法放入上下文窗口,则将包含文件的大纲,其中包含函数及其描述,但不包含实现。如果大纲也太大,则该文件将不会成为提示的一部分。

让 Copilot 自动查找正确的文件

您可以让 Copilot 自动从您的代码库中查找正确的文件,而无需手动添加单个文件。当您不知道哪些文件与您的问题相关时,这会很有用。

要让 Copilot 自动查找正确的文件,请在提示中添加 #codebase 或从上下文类型列表中选择代码库

确保启用 github.copilot.chat.codesearch.enabled (预览) 设置以获得最佳结果。

为修复问题添加上下文

当您在代码中遇到问题或在运行测试时遇到故障时,您可以向聊天提示添加特定上下文,以帮助 Copilot 提供最佳答案。

  • 问题面板中拖放项目,以将相应的问题作为上下文附加到您的提示。

    或者,从上下文类型列表中选择问题...,然后从快速选择中选择特定问题。

    Screenshot of the Chat view with a problem attached to the chat input field, the result of doing drag and drop of that problem from the Problems panel.

  • 选择测试失败上下文类型以将测试失败详细信息作为上下文添加到您的提示。

  • 从上下文类型列表中选择终端上次命令或键入 #terminalLastCommand 以附加终端中上次运行的命令的输出。

聊天上下文类型

Copilot 支持以下上下文类型

  • 文件 - 在提示中包含工作区中的特定文件
  • 文件夹 - 添加文件夹以在提示中包含该文件夹中的文件
  • 符号 - 将工作区中的符号添加到提示
  • 代码库 - 让 Copilot 自动查找正确的文件
  • 编辑器或终端选择 - 在提示中包含来自编辑器或终端的文本选择
  • 终端命令输出 - 在提示中包含终端中上次运行的命令的输出
  • 问题 - 在提示中包含来自“问题”面板的特定代码问题
  • 测试失败 - 在提示中包含来自测试失败的详细信息