应用的 GitHub Copilot 技术

已完成

前面的单元介绍了如何设置 Copilot,并提到了它如何让开发人员能够更快地开始编写代码。

本单元将介绍 Copilot 如何帮助你开发现有项目并完成更复杂的任务。

使用 GitHub Copilot 执行高级任务

作为一名工程师,处理现有项目是很常见的事情。 修复代码或实现功能时,我们需要编写文档和测试,并使用终端命令。 让我们看看使用 GitHub Copilot 执行此操作的几种方法。

隐式提示

尽管你可以在提示中具体说明以获取 GitHub Copilot 的指导,但也可以利用隐式提供预创建提示的功能来获取合适的答案。

例如,你正在处理 Python 项目,并且打开了一个文件,文件中包含以下代码且代码中有一个 bug:

with open("file.txt", "r") as file:
    # Read the file and print the content
    contents = file.read

在选择代码并在 Windows 上使用 Ctrl+i 或在 Mac 上使用 Command+i 后,可以使用内联聊天和 /fix 斜杠命令来要求 GitHub Copilot 帮助你修复代码。

如果仅键入 /fix,你可能会从 GitHub Copilot 获得类似于此建议的响应: “若要修复代码,请在 file.read 后面添加括号以调用读取方法并修复方法名称中的拼写错误。

斜杠命令可用于内联聊天和聊天界面。 除了 /fix 该命令,下面是可在 Copilot 聊天中使用的一些最有用的斜杠命令:

  • /doc:向指定代码或所选代码添加注释。
  • /explain:获取有关代码的说明。
  • /generate:生成用于回答指定问题的代码。
  • /help:获取有关如何使用 Copilot 聊天的帮助。
  • /optimize:分析和改进所选代码的运行时。
  • /tests:为所选代码创建单元测试。

使用 / 命令可以更轻松地与 GitHub Copilot 交互,并帮助你获得更好的回复,而无需编写更长的提示。

将 / 命令等功能与内联聊天相结合,你可以选择最适合你和你正在处理的代码的方式。

选择性上下文

可以自定义 GitHub Copilot,根据你正在工作的上下文提供建议。 例如,可以要求 GitHub Copilot 根据整个工作区或终端输出提供建议。

无需打开许多文件,GitHub Copilot 即可为你的项目提供准确的建议。 假设你需要使用 Dockerfile 来打包项目。 Dockerfile 是一个特殊文件,需要特定说明来打包项目。 可以使用 @workspace 代理询问 GitHub Copilot 如何帮助你。例如,打开 GitHub Copilot Chat 并键入以下命令:

@workspace I need to create a Dockerfile for this project, can you generate one that will help me package it?

你将获得一个回复,其中说明了为项目创建 Dockerfile 的步骤以及要执行的文件步骤。

与往常一样,如果建议不完全是你要查找的内容,则可以重写提示并使其更具体。 例如,可以要求 GitHub Copilot 在创建 Dockerfile 时使用特定步骤:

@workspace help me create a Dockerfile to package this project but make sure you are using a Virtual Environment for Python.

除了 @workspace 代理,还可以使用其他代理(例如 @terminal@file)获取 @directory 特定于上下文的建议:

  • @terminal:根据终端输出提供建议。
    • 示例: @terminal 如何修复我看到的错误消息?
  • @file:重点介绍特定文件的内容。
    • 示例: @file 能否在 main.py 中帮助重构此函数?
  • @directory:考虑特定目录的内容。
    • 示例: @directory 如何优化 utils 目录中的脚本?

如果遇到困难或未获得所需结果,可以重新组织提示的措辞,或开始编写代码,让 Copilot 自动完成。

注意

虽然可以具体说明 @workspace,但默认情况下,GitHub Copilot 会使用文本编辑器中的打开文件作为附加上下文。