检查GitHub Copilot的代码完成功能
GitHub Copilot在你输入代码时提供自动完成样式的建议。 除了标准自动完成建议之外,GitHub Copilot还提供下一个编辑建议(NES),用于预测下一次编辑的位置,并建议完成。
执行以下操作时,会收到自动完成提示:
- 在编辑器中输入部分代码行或完整代码行。
- 在编辑器中输入部分或完整的代码注释。
- 在编辑器中输入空白代码行。
下次编辑建议会在编辑代码时自动显示。 它们会根据您最近的编辑,预测您接下来可能会进行的更改,并用一个特殊的指示器显示建议的编辑位置。
生成自动补全建议
GitHub Copilot通过建议代码补全来加速应用开发,这些建议是根据你正在编写的代码提供的。
例如,假设要创建一个名为返回两个整数之和的 C# 方法 addInt 。 当您开始键入方法签名时,GitHub Copilot会建议它认为您希望创建的代码。
显示了自动补全建议,其中未使用彩色突出显示语法。 这有助于将自动完成功能与您的现有代码区分开来。 可以通过按 Tab 键来接受建议的代码。
可以按 Esc 键消除建议。
addInt 示例有点简单,因此你可能想知道GitHub Copilot如何处理更复杂的内容。
假设你想要创建一个方法,该方法接受数字列表,并返回列表中所包含的质数的总和。 可以命名该方法 addPrimeNumbersInNumericList。 开始键入方法签名时,GitHub Copilot会为你生成建议。 例如:
在接受之前,请务必审查建议。 此自动完成效果不错,因此可以按 Tab 键键接受建议。
让我们进一步发展这个情景。
将建议合并到代码后,你会注意到该方法 isPrime 以红色下划线。 这是因为该方法 isPrime 尚不存在于代码中。
GitHub Copilot经过培训,以遵循最佳做法,包括将复杂问题分解为更小、更易于管理的部分。 在这种情况下,GitHub Copilot建议你创建一个单独的 isPrime 方法来检查数字是否为质数。
GitHub Copilot已准备好为 isPrime 方法建议代码片段。 在 addPrimeNumbersInNumericList 方法下方输入空行时,GitHub Copilot建议使用isPrime 方法。
自动完成建议通过提供代码片段来加速开发过程。 但是,如果这些建议不太符合您的需要怎么办? GitHub Copilot提供了用于管理自动完成建议的界面。
管理自动补全建议
当GitHub Copilot建议自动完成时,它还提供用于管理建议的界面。 可以接受建议、查看其他建议或消除建议。
将鼠标指针悬停在建议的自动补全项上时,会显示多个用于管理建议的选项。
用于管理建议的默认界面包括以下选项:
- 通过选择“ 接受”来接受建议(完整)。 也可以通过按 Tab 键来接受建议。
- 通过选择 Accept Word 部分接受建议。 也可以通过按
Ctrl+→(向右键)键部分接受建议。 - 通过选择
>或<查看备用建议。 还可以通过按Alt+]或Alt+[键查看替代建议。
选择接受词语选项来接受建议中的下一个词。 如果要接受部分建议,然后继续键入自己的代码,这非常有用。 例如,可以接受isPrime方法建议的第一个单词。
继续选择 Accept Word,直到你接受尽可能多的建议。
选择“接受Word”按钮右侧的省略号图标可提供其他选项,例如 Always Show Toolbar 和 Open Completions Panel。
选择 “始终显示工具栏 ”选项可确保使用键盘快捷方式管理自动完成建议时工具栏保持可见。 选择 Open Completions Panel 选项将打开GitHub Copilot完成面板。 本单元末尾介绍了如何使用GitHub Copilot完成面板查看多个建议。
注释
若要接受整行建议,需要为 editor.action.inlineSuggest.acceptNextLine 命令配置自定义键盘快捷方式。 默认情况下,此选项在工具栏中不可用。
从注释生成代码建议
除了根据代码提供自动完成建议之外,GitHub Copilot还可以利用代码注释来推荐代码片段。 使用自然语言短语描述要创建的代码。 这使GitHub Copilot能够提出满足特定要求的自动完成建议。 例如,可以指定要在计算中使用的算法类型,或要添加到类的方法和属性。
让我们返回到质数示例。 此时,你有以下代码:
addPrimeNumbersInNumericList和isPrime方法似乎已完成。 但是,调用该方法时 addPrimeNumbersInNumericList ,仍需要可用作参数的数字列表。 可以编写描述所需数字列表的注释。 例如,100 个随机数的列表,范围为 1 和 1000。
开始输入注释时,GitHub Copilot会建议一个自动完成,用来为您完成注释。 GitHub Copilot使用周围的代码来改进其建议。 GitHub Copilot使用周围的代码来预测您要创建什么,例如,当您开始输入注释// create时。 在这种情况下,GitHub Copilot使用 addPrimeNumbersInNumericList 方法来预测要创建 a list of numbers。
继续编写批注时,GitHub Copilot会更新其自动完成建议提示。 准备好接受建议时,请选择 “接受 ”或按 Tab 键。
在注释后创建新代码行时,GitHub Copilot开始基于注释和现有代码生成代码片段。
在显示建议时接受每个建议。
如果GitHub Copilot没有完成工作,它会生成另一个建议供你接受。
如果在代码片段完成后输入新的代码行,GitHub Copilot会根据代码项目的要求生成另一个自动完成建议。 在这种情况下,GitHub Copilot建议调用 addPrimeNumbersInNumericList 方法的代码行,并传入名为 numbers 的列表。
使用GitHub Copilot完成面板查看多个建议
如果对初始自动完成建议不满意,GitHub Copilot可以在编辑器中打开具有更多选项的新选项卡。 可以查看更大的建议列表以找到更好的匹配项,然后选择它。
为了演示此功能,让我们返回到质数示例中的较早阶段。
假设你仍然需要创建 isPrime 该方法。 在 addPrimeNumbersInNumericList 方法下方输入空白行时,GitHub Copilot建议使用 isPrime 方法。 此过程与之前使用的过程相同。 假设你对GitHub Copilot提供的建议不满意,并想查看更多选择。
若要打开GitHub Copilot完成面板并查看其他建议,请按 Ctrl + Enter 键。 还可以打开“更多操作”菜单,然后选择打开完成面板。
GitHub Copilot完成面板最多显示 10 条其他建议。 查看这些建议,找到最符合您需求的一个。
若要接受建议,请选择建议下方的 “接受建议编号 ”标签。 例如,选择第一个建议下方的 “接受建议 1 ”标签。
若要拒绝所有建议,请关闭选项卡。
概要
自动完成建议和下一个编辑建议可帮助你更高效、更准确地编写代码。 GitHub Copilot 在您输入代码时提供自动完成建议,并预测您可能的下一个编辑。 可以通过输入部分或完整代码行、部分或完整代码注释或空白代码行来生成自动补全建议。 可以通过按 Tab 键来接受建议,也可以通过按 Esc 键消除建议。 可以使用将鼠标悬停在建议上时出现的工具栏来管理建议。 通过工具栏可以查看替代建议、接受建议、接受建议中的一个词,或打开 GitHub Copilot 完成面板以查看更多建议。