现已发布!了解 11 月的新功能和修复。

VS Code 中 GitHub Copilot 的自定义说明

您可以通过提供有关您团队的工作流程、工具或项目详细信息的上下文信息来增强 Copilot 的聊天响应。 您不必在每次聊天查询中手动包含此上下文,您可以创建一个 _自定义说明_ 文件,该文件会自动将此信息与每次聊天请求一起合并。

Copilot 将这些说明应用于“聊天”视图、“快速聊天”或“内联聊天”中的聊天提示。 这些说明不会显示在聊天中,而是由 VS Code 传递给 Copilot。

您可以为特定目的指定自定义说明

  • 代码生成说明 - 提供特定于生成代码的上下文。 例如,您可以指定私有变量始终应以一个下划线为前缀,或者应以某种方式实现单例。 您可以在设置中或工作区中的 Markdown 文件中指定代码生成说明。

  • 测试生成说明 - 提供特定于生成测试的上下文。 例如,您可以指定所有生成的测试都应使用特定的测试框架。 您可以在设置中或工作区中的 Markdown 文件中指定测试生成说明。

  • 代码审查说明 - 提供特定于审查当前编辑器选择的上下文。 例如,您可以指定审查者应在代码中查找特定类型的错误。 您可以在设置中或工作区中的 Markdown 文件中指定审查选择说明。

  • 提交消息生成说明 - 提供特定于生成提交消息的上下文。 您可以在设置中或工作区中的 Markdown 文件中指定提交消息生成说明。

自定义说明由自然语言说明组成,并且应是简短、独立的语句,它们添加上下文或相关信息以补充聊天问题。

定义代码生成自定义说明

Copilot 可以帮助您生成代码,例如作为重构、生成单元测试或实现功能的一部分。 您可能希望在项目中使用特定的库,或者希望为 Copilot 生成的代码遵循特定的编码风格。

注意

Copilot 不会对 代码补全应用代码生成说明。

使用设置

您可以使用 github.copilot.chat.codeGeneration.instructions 设置配置自定义代码生成说明。 您可以在用户或工作区级别定义自定义说明,还可以指定特定于语言的说明。 获取有关特定于语言的设置的更多信息。

以下代码片段显示如何在 settings.json 文件中定义一组说明。 要在设置中直接定义说明,请配置 text 属性。 要引用外部文件,请配置 file 属性。

  "github.copilot.chat.codeGeneration.instructions": [
    {
      "text": "Always add a comment: 'Generated by Copilot'."
    },
    {
      "text": "In TypeScript always use underscore for private field names."
    },
    {
      "file": "code-style.md" // import instructions from file `code-style.md`
    }
  ],

code-style.md 文件内容示例

Always use React functional components.

Always add comments.

使用 .github/copilot-instructions.md 文件

您还可以将自定义说明存储在您的工作区或存储库中的 .github/copilot-instructions.md 文件中,并让 VS Code 自动拾取此文件。

如果您在 .github/copilot-instructions.md 文件和设置中都定义了自定义说明,Copilot 会尝试合并来自这两个来源的说明。

注意

Visual Studio 中的 GitHub Copilot 也会检测 .github/copilot-instructions.md 文件。 如果您有一个在 VS Code 和 Visual Studio 中都使用的工作区,您可以使用同一个文件来为这两个编辑器定义自定义说明。

  1. github.copilot.chat.codeGeneration.useInstructionFiles 设置为 true 以指示 VS Code 中的 Copilot 使用自定义说明文件。

  2. 在您的工作区根目录中创建 .github/copilot-instructions.md 文件。 如果需要,请先创建 .github 目录。

    提示

    在 VS Code 中的“资源管理器”视图中,您可以通过键入完整路径作为文件名,在一个操作中创建文件夹和文件。

  3. 向文件中添加自然语言说明。 您可以使用 Markdown 格式。

    说明之间的空格将被忽略,因此说明可以写成一个段落,每个说明都位于新的一行中,或者为了清晰起见,用空行分隔。

定义测试生成自定义说明

您可以使用 Copilot 为您的代码生成测试,例如通过使用“聊天”视图中的 @workspace /tests 提示。 您可以定义自定义说明,以帮助 Copilot 生成特定于您的项目和开发工作流程的测试。

要配置自定义测试生成说明,请使用 github.copilot.chat.testGeneration.instructions 设置。 您可以在用户或工作区级别定义自定义说明。

以下代码片段显示如何在 settings.json 文件中定义一组说明。 要在设置中直接定义说明,请配置 text 属性。 要引用外部文件,请配置 file 属性。

  "github.copilot.chat.testGeneration.instructions": [
    {
      "text": "Always use vitest for testing React components."
    },
    {
      "text": "Use Jest for testing JavaScript code."
    },
    {
      "file": "code-style.md" // import instructions from file `code-style.md`
    }
  ],

code-style.md 文件内容示例

Always add code comments.

Always use React functional components.

定义代码审查自定义说明

您可以使用 Copilot 审查编辑器中选择的代码。 您可以定义自定义说明,以帮助 Copilot 考虑与您的项目和开发工作流程相关的特定代码审查标准。

要配置自定义代码审查说明,请使用 github.copilot.chat.reviewSelection.instructions 设置。 您可以在用户或工作区级别定义自定义说明。

定义提交消息生成自定义说明

在“源代码管理”视图中,您可以使用 Copilot 为待处理的代码更改生成提交消息。 您可以定义自定义说明,以帮助 Copilot 生成考虑到特定格式和结构的提交消息,这些格式和结构特定于您的项目和开发工作流程。

要配置自定义提交消息生成说明,请使用 github.copilot.chat.commitMessageGeneration.instructions 设置。 您可以在用户或工作区级别定义自定义说明。

定义自定义说明的技巧

  • 保持你的指令简短且自包含。每个指令应该是一个单独、简单的陈述。如果你需要提供多个信息,请使用多个指令。

  • 不要在指令中引用外部资源,例如特定的编码标准。

  • 通过将你的指令存储在外部文件中,可以轻松地与你的团队或跨项目共享自定义指令。你还可以对该文件进行版本控制,以跟踪随时间的变化。

设置

  • github.copilot.chat.codeGeneration.instructions :一组将被添加到生成代码的 Copilot 请求中的指令。
  • github.copilot.chat.codeGeneration.useInstructionFiles (预览版):控制是否将来自 .github/copilot-instructions.md 的代码指令添加到 Copilot 请求中。
  • github.copilot.chat.testGeneration.instructions :一组将被添加到生成测试的 Copilot 请求中的指令。
  • github.copilot.chat.reviewSelection.instructions (预览版):一组将被添加到用于审查当前编辑器选区的 Copilot 请求中的指令。
  • github.copilot.chat.commitMessageGeneration.instructions :一组将被添加到生成提交信息的 Copilot 请求中的指令。
  • 了解如何使用 AI 聊天对话与 Copilot Chat 进行交互。