使用 GitHub Copilot 代码完成建议生成代码
GitHub Copilot可为许多编程语言和各种框架提供代码完成建议,但对于 Python、JavaScript、TypeScript、Ruby、Go、C# 和 C++ 尤其有效。 代码行补全是根据所编写代码的上下文生成的。 可以接受、拒绝或部分接受GitHub Copilot提供的建议。
GitHub Copilot 提供了两种生成代码行补全的方法:
通过注释:可以通过编写描述要生成的代码的注释来生成代码行补全。 GitHub Copilot根据你编写的注释提供代码完成建议。
通过代码:可以通过启动代码行或按 Enter 在补全的代码行后生成代码行补全。 GitHub Copilot根据编写的代码提供代码完成建议。
使用GitHub Copilot从注释生成代码行补全
GitHub Copilot根据注释和应用的现有上下文生成代码完成建议。
可以使用注释来描述代码片段、方法、数据结构和其他代码元素。
假设你有以下代码片段:
namespace ReportGenerator;
class QuarterlyIncomeReport
{
static void Main(string[] args)
{
// create a new instance of the class
QuarterlyIncomeReport report = new QuarterlyIncomeReport();
// call the GenerateSalesData method
// call the QuarterlySalesReport method
}
public void QuarterlySalesReport()
{
Console.WriteLine("Quarterly Sales Report");
}
}
例如,以下注释可用于创建数据结构:
/* public struct SalesData. Include the following fields: date sold, department name, product ID, quantity sold, unit price */
GitHub Copilot根据代码注释和编辑器中打开的代码文件生成一个或多个代码完成建议。
请注意用于声明数据结构的字段的数据类型。 GitHub Copilot根据现有代码和代码注释选择数据类型和变量名称。 GitHub Copilot尝试确定应用程序如何使用变量并相应地定义数据类型。
当 GitHub Copilot 生成多个建议时,可以通过选择位于 接受 按钮左侧的向左或向右箭头(> 或 <)来循环浏览这些建议。 这样,你可以查看并选择最适合你的需求的建议。
可以接受与所需代码不完全匹配的代码补全建议。 但是,“修复”该建议所需的更改应该清晰明确。 在本例中,有些数据类型不是你需要的,但你可以在接受建议的自动补全后对其进行调整。
如果建议的选项都不符合你的需求,可以尝试以下两种操作。 若要打开包含其他建议列表的新编辑器选项卡,请按 CtrlEnter 键 + 。 此热键组合将打开包含最多 10 条建议的新选项卡。 每个建议后跟一个可用于接受该建议的按钮。 接受建议后,选项卡会自动关闭。 另一个选项是按 Esc 键忽略建议,然后重试。 可以调整代码注释,为GitHub Copilot提供更多的上下文供其使用。
注释
GitHub Copilot有时可以分阶段提出建议。 如果发生这种情况,可以按 Enter 键查看按 Tab 键后的建议的其他阶段。
若要接受建议的数据结构,请按 Tab 键或选择“接受”。
若要修改字段数据类型,请按如下所示更新代码:
public struct SalesData
{
public DateOnly dateSold;
public string departmentName;
public int productID;
public int quantitySold;
public double unitPrice;
}
快速调整代码补全建议有助于确保生成所需的代码。 当代码库的大部分仍待开发时,在开发过程中尽早进行更正尤其重要。 后续代码补全基于您已编写的代码,因此请务必确保您的代码尽可能准确。
请使用下一个编辑建议来完成代码更改
Ghost 文本补全功能在编写新代码时非常实用。 但大多数日常编码都涉及编辑 现有 代码,即重命名变量、更新数据类型或修复逻辑错误。 GitHub Copilot的下一个编辑建议(NES)专为这种情况设计。
进行编辑时,NES 会分析更改,并预测 下一次 编辑需要发生的位置以及编辑内容(即使它位于不同行或文件的不同部分)。 这可使你保持工作流畅,而无需手动搜索需要更新的每个地方。
若要启用下一个编辑建议,请将 github.copilot.nextEditSuggestions.enabled 设置设置为 Visual Studio Code 中的 true。
启用后,可以通过以下方式使用 NES:
在编辑器中进行编辑,例如重命名变量或更改方法签名。
查找编辑器左侧出现的边距箭头。 箭头指向下一个建议的编辑位置。
按 Tab 导航到建议的编辑位置。
再次按 Tab 以接受建议,或按 Escape 将其消除。
下面是 NES 特别有用的一些常见场景:
- 重命名传播:只需重命名一个变量,NES 就会建议更新该文件中所有其他对该变量的引用。
- 类型更改:更改字段的数据类型,NES 建议更新使用该字段的下游代码。
- 逻辑更正:修复关键字中的倒排条件或拼写错误,NES 标记需要更新的相关代码部分。
- 重构:复制并粘贴代码块后,NES 建议如何调整它以匹配周围的代码样式。
注释
接下来的编辑建议基于您当前的编辑,预测最有可能的下一步更改。 在接受建议之前,请始终检查每一条建议,因为针对具体情况的正确修复可能有所不同。
概要
代码行完成是一项功能强大的GitHub Copilot功能,可帮助你快速高效地生成代码。 通过使用注释描述要生成的代码,可以尽量创建数据结构、方法和其他代码元素。 此外,GitHub Copilot可以根据您输入的代码提供代码行补全功能,从而轻松构建复杂的应用程序。