检查GitHub Copilot的代码开发功能

已完成

Visual Studio Code使用两个扩展(GitHub Copilot和GitHub Copilot Chat)实现GitHub Copilot。 这些扩展通过生成扩展或改进应用程序的建议来提高开发人员的工作效率。 每个扩展都提供了一组功能,可帮助你更有效地开发代码:

  • GitHub Copilot扩展使用在编辑器或代码注释中输入的代码生成代码完成建议。
  • GitHub Copilot Chat 扩展通过聊天交互或对所选代码执行的智能操作来生成代码建议。

注意

在本模块中,你将使用GitHub Copilot扩展来开发新的代码功能和应用程序。 有两个单独的模块介绍如何使用GitHub Copilot创建单元测试并改进现有代码。

Visual Studio Code中的GitHub Copilot工具

Visual Studio Code可以轻松访问以下GitHub Copilot和GitHub Copilot聊天功能:

  • 代码补全:利用代码补全更高效地编写代码。
  • 内联聊天:直接从编辑器启动内联聊天对话,以便在编码时提供帮助。
  • 聊天视图:打开侧边的 AI 助手,随时为你提供帮助。
  • 快速聊天:提问一个简单的问题,然后回到你正在做的事情。
  • 智能作:运行智能作以完成某些任务,甚至无需编写提示。

GitHub Copilot扩展将 AI 的强大功能引入Visual Studio Code环境中。

使用GitHub Copilot和代码行补全功能生成代码

GitHub Copilot会在您输入代码时生成代码行完成建议。 应用程序中已有的代码提供了GitHub Copilot用于生成准确建议的上下文。 例如,假设你正在开发一个处理客户支出的类。 该类使用包含所有客户支出的列表。 需要创建一个返回所有支出总和的方法。 如果开始输入方法签名,GitHub Copilot会生成完成代码行的建议。

显示基于代码的代码行完成的屏幕截图。

如果对建议感到满意,请按 Tab 键或选择“ 接受”。 自动补全功能可以节省时间,并通过提供变量名称和其他代码元素来帮助准确地编写代码。

还可以使用代码行补全来查看用于构造代码的不同选项。 例如,当您开始输入方法调用语句时,GitHub Copilot 提供关于实现不同方法重载的建议。 可以循环浏览建议并接受适合你的意向的选项。 还可以拒绝所有建议。 此过程可帮助你快速探索不同的编码样式和技术。

GitHub Copilot还会从代码注释生成代码行完成建议。 例如,如果键入描述要创建的方法的注释,GitHub Copilot会生成方法签名和实现的建议。

显示基于注释的代码补全的屏幕截图。

请注意,建议的代码补全使用现有代码中的信息以及描述该方法的代码注释。

开发人员使用代码补全来加速初始代码结构的开发。

使用GitHub Copilot聊天生成代码

GitHub Copilot Chat 帮助你通过聊天界面和智能操作创建代码。 例如,如果您在GitHub Copilot Chat中输入请求以创建新方法,GitHub Copilot会提供一个或多个方法签名及实现的建议。 查看然后接受或放弃建议有助于更快、更准确地创建代码的初始版本。

注意

Visual Studio Code的GitHub Copilot聊天扩展包括处理用户输入的聊天界面。 在此培训中,使用术语问题提示来指代您在聊天会话中提供的输入。

当你需要开发实现不熟悉的资源(例如新库、框架或 API)的代码时,GitHub Copilot聊天特别有用。 当你提交描述你的要求的提示时,GitHub Copilot Chat 会生成演示如何实现目标的建议。 查看建议还可以教你如何实施新资源。

通过提供具有明确范围和意图的提示或问题给“GitHub Copilot Chat”,可以改进生成的响应。 可以提出提供上下文的问题并以对话方式描述需求。 GitHub Copilot聊天使用你提供的信息来生成满足你的需求并匹配编码样式的代码建议。

可以使用聊天参与者、斜杠命令和聊天变量来阐明提示的上下文。

  • 聊天参与者(如 @workspace@terminal)可帮助GitHub Copilot聊天了解问题上下文。
  • 斜杠命令(如 /explain/new)可帮助GitHub Copilot聊天了解问题的意图或目的。
  • 聊天变量(如 #file#editor)可帮助Copilot聊天在考虑您问题的整体上下文时关注其中特定内容。

使用这些专用描述符有助于GitHub Copilot聊天生成更准确且有用的响应。

可以通过 / 命令将聊天参与者组合起来,以执行特定操作。 例如,可以使用以下提示搭建新的 C# 控制台应用程序: @workspace /new console application in C# 此提示包括聊天参与者(@workspace)和斜杠命令(/new),以帮助GitHub Copilot聊天执行预期任务。

显示用于搭建控制台应用的聊天的屏幕截图。

GitHub Copilot可以为更复杂的工作区搭建基架。 例如,以下提示为使用 Express 框架、Pug 模板引擎和 TypeScript 的 Node.js 应用程序创建工作区: @workspace /new Node.js Express Pug TypeScript

使用“聊天视图”通过GitHub Copilot Chat生成代码

Visual Studio Code中的聊天视图提供对 AI 助手的访问权限,可帮助你开发代码。 无需离开Visual Studio Code环境,即可提出问题并从 AI 助手获取帮助。 在开发代码和探索解决遇到的难以编码问题的方法时,“聊天”视图可提供帮助。 你也可以使用“聊天”视图提出有关现有代码的问题、获取有关错误或代码逻辑的帮助以及获取有关使用资源的信息。 聊天视图可帮助你学习新的编码技术、探索不同的编码样式和改进编码技能。

聊天视图在Visual Studio Code代码编辑器右侧的独立面板中打开。 若要打开聊天视图,请从Visual Studio Code标题栏中选择Chat或使用 Ctrl+Alt+I 键盘快捷方式。

在 Visual Studio Code 中显示聊天视图的“欢迎”消息的截图。

如果需要Visual Studio Code中的更多屏幕空间,可以通过从“聊天”视图的上下文菜单中选择“打开聊天,在单独的窗口中打开聊天视图。

屏幕截图显示聊天视图在 Visual Studio Code 中响应问题。

GitHub Copilot Chat 提供了丰富的交互式结果,其中包括以下元素:

  • 简单文本。 例如,提供对问题的自然语言答复。
  • 图像。 例如,显示图表或屏幕截图。
  • 按钮。 例如,触发操作。
  • 引用。 例如,可以找到有关统一资源标识符 (URI) 的详细信息。
  • 文件树。 例如,当聊天参与者建议创建新工作区时显示工作区预览。

以下示例显示对用于创建 Express 应用程序的提示的响应。 GitHub Copilot聊天提供了简单的文本说明、显示建议的工作区结构的树视图以及可用于创建新工作区的按钮。

显示聊天视图的屏幕截图,其中显示了“创建工作区”按钮。

GitHub Copilot维护对话的历史记录。 历史记录用于改进GitHub Copilot Chat所提供的回复和后续问题建议。

在“聊天”视图中管理代码块

根据你的问题,GitHub Copilot聊天可能会在响应中返回源代码。 源代码显示为代码块,可以通过几种不同的方式管理代码。

如果将鼠标指针悬停在代码块上,则会显示用于管理该代码块的选项。 初始选项为 “应用”、“ 插入”(Ctrl+Enter)“复制”。

显示聊天视图中的代码块的屏幕截图。

“更多作”按钮显示“ 插入终端”(Ctrl+Alt+Enter)“插入到新文件中”的选项。

如果 GitHub Copilot 聊天检测到代码块包含命令,则可以在集成终端中使用 插入到终端(Ctrl+Alt+Enter) 直接运行。 此选项创建或打开活动终端,并插入命令文本,可供你运行。

显示聊天视图中的“插入到终端”选项的屏幕截图。

使用GitHub Copilot Chat的内联聊天生成代码

内联聊天界面提供强大的 AI 功能,可让您将关注点聚焦在代码上。 在代码编辑器中工作时,可以通过按 键盘上的 Ctrl+I 打开内联聊天。

可以通过以下方式使用内联聊天:

  • 询问有关现有代码的问题。
  • 修改或替换现有代码。
  • 生成新代码。

使用内联聊天创建新功能

内联聊天界面可用于开发新的代码功能。 例如,可以使用内联聊天生成新的用户界面组件、新的 API 终结点或新的数据处理管道。

可以通过完成以下步骤使用内联聊天创建新的代码功能:

  1. 在编辑器中选择代码。

  2. 通过按 键盘上的 Ctrl+I 打开内联聊天界面。

  3. 输入描述要创建的功能的提示。

  4. 查看GitHub Copilot聊天提供的建议,并在必要时优化提示。

  5. 如果对建议感到满意,请接受它。

以下示例演示了如何使用内联聊天创建新方法:

显示用于创建方法的内联聊天会话的屏幕截图。

使用内联聊天创建正则表达式

正则表达式是用于匹配字符串中的字符组合的模式。 一些开发人员发现正则表达式编写起来很困难,因为它们可能很复杂且难以理解。

内联聊天界面可用于快速准确地生成正则表达式。 例如,可以使用内联聊天生成用于验证电子邮件地址、电话号码、邮政编码和其他数据模式的正则表达式。

可以通过完成以下步骤使用内联聊天创建正则表达式:

  1. 在编辑器中选择代码。

  2. 通过按 键盘上的 Ctrl + I 打开内联聊天界面。

  3. 输入描述需要验证的数据模式的提示。

  4. 查看GitHub Copilot聊天提供的建议,一旦满意,请接受建议。

以下示例演示了如何使用内联聊天为电子邮件地址创建正则表达式:

显示用于创建正则表达式的内联聊天会话的屏幕截图。

始终审查由 GitHub Copilot Chat 生成的响应是非常重要的。

GitHub Copilot聊天建议使用以下正则表达式来验证电子邮件地址:^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$

让我们花一点时间来评估建议的正则表达式。

^:此符号指示线条的开头。 电子邮件地址必须从这里开始。

[a-zA-Z0-9_.+-]+:表达式的这一部分与方括号([])中的一个或多个字符匹配。 字符可以是小写字母 (a-z)、大写字母 (A-Z)、数字 (0-9) 或特殊字符,如下划线 (_)、句点 (.)、加号 (+) 或连字符 (-)。

@:表达式的这一部分是“at”符号(@)。 它是电子邮件地址中的字面字符。

[a-zA-Z0-9-]+:表达式的这一部分与第一部分类似,但它适用于电子邮件的域名部分。 它可以包含一个或多个小写字母、大写字母、数字或连字符 (-)。

\.:表达式的这一部分是字面上的句号(.)字符。 它将域名与域扩展区分开。

[a-zA-Z0-9-.]+:表达式的这一部分与域扩展匹配。 它可以包含一个或多个小写字母、大写字母、数字、连字符 (-) 或句点 (.)。

$:此符号指示线条的末尾。 电子邮件地址必须在此处结束。

总的来说,这个正则表达式是验证电子邮件地址的良好起点,但它有一些局限性,可能无法涵盖所有​​有效的电子邮件格式。 你可能需要考虑对关键应用程序使用更全面的模式,甚至使用专用的电子邮件验证库。

摘要

GitHub Copilot扩展可帮助开发人员更快地编写代码,并减少错误。 GitHub Copilot扩展使用在编辑器或代码注释中输入的代码生成代码完成建议。 GitHub Copilot Chat 扩展根据与聊天的互动或对选中代码的智能操作生成代码建议。