Copilot 下一次编辑建议(预览)
2025年2月12日,由 Brigit Murtaugh、Burke Holland 撰写
我们激动地宣布,在 Visual Studio Code 的本次发布中,GitHub Copilot 将推出不是一个,不是两个,而是三个预览功能
- 后续编辑建议
- Copilot Edits 的代理模式
- 视觉
在本文中,我们将深入探讨“后续编辑建议” (Next Edit Suggestions),并了解您编辑器中 AI 驱动代码补全的下一步发展。
后续编辑建议 (NES)
GitHub Copilot 的代码补全功能——也被称为幽灵文本(ghost text)——在自动完成方面表现非常出色。使用 GitHub Copilot 时,最令人难以置信的体验之一,就是它能在你甚至还未开口请求时,就建议出你脑海中想要的代码。但大多数编码活动不仅包括编写新代码,同样也涉及编辑现有代码。因此,让代码补全功能同样作用于现有代码,是很自然的一步。
我们称之为“后续编辑建议”(Next Edit Suggestions),简称 NES。是的——当我们看到这个缩写时,也感受到了对那款游戏机的怀旧之情。
开始使用 NES
要开始使用 Copilot NES,首先请启用 VS Code 设置 github.copilot.nextEditSuggestions.enabled。
和代码补全一样,要开始从 NES 获取建议,你所需要做的就是开始编码!
当出现编辑建议时,使用 Tab 键导航到它,然后再次按 Tab 键接受。忘掉手动搜索相关文件或引用的烦恼吧。Copilot NES 会为你留意下一个相关的编辑!
边栏中的箭头表示有可用的编辑建议。将鼠标悬停在箭头上可以浏览编辑建议菜单,其中包括键盘快捷键和设置选项。
滚动时错过了那个编辑建议?箭头会提示你下一个编辑建议的位置,根据你在文件中的位置指向上方或下方。
建议可以涵盖单个符号、一整行或多行,具体取决于潜在更改的范围。
重新加载 VS Code,使您更新的设置生效。
如果您是 Copilot Business 或 Enterprise 用户,除了在您的编辑器中设置 github.copilot.nextEditSuggestions.enabled 之外,您所在组织的管理员还必须选择加入使用 Copilot 的“编辑器预览功能”。
您可以了解更多关于在您的组织中管理 Copilot 策略的信息。
示例场景
当您进行可能影响整个文件或项目的更改时,Copilot NES 是您的 AI 伙伴。您将在多种场景中见证它的出色表现。
捕捉和纠正错误: 错误是编写代码过程中的自然组成部分,而 Copilot NES 会帮助捕捉它们(有时甚至在您意识到错误存在之前!)。
NES 有助于处理像拼写错误这样的小失误——也许你正在快速编码并沉浸其中,不小心把 const
写成了 conts
。
NES 也能帮助处理更具挑战性的逻辑错误,比如一个反向的三元表达式。
我们的开发团队一直在内部使用 NES。在我们撰写这篇博客时,我们的一位工程师回想起了他与 NES 的第一个“顿悟”时刻。他当时正在编写一个类似 if (something !== 'a' || something !== 'b')
的条件。NES 发现这个语句将永远评估为 true(感谢德摩根定律!),并建议将 ||
替换为 &&
以使代码有效。
意图变更: Copilot NES 会根据意图的变更提出相应的修改建议。例如,将一个类从 Point
改为 Point3D
后,它会建议在类定义和距离计算中添加一个 z
变量。
使用新添加的变量或逻辑: Copilot NES 帮助您使用刚刚添加的新代码。这可能是一个小改动,比如在实际方法中调用一个新的方法参数。
也可能更复杂:如果你在 VS Code 扩展的 extension.ts
中添加了一个新命令,NES 会首先建议在 extension.ts
中清理该命令。然后当你打开 package.json
时,NES 会建议也注册该命令。
重构: 如果您使用了一个新的名称或命名模式,Copilot NES 会建议对后续代码进行类似的更新。
随着我们扩展 NES 的体验,请阅读我们的完整 NES 文档以获取更多信息和场景。
分享您的反馈
Copilot NES 正在快速发展,我们迫不及待地希望通过我们的仓库中的 issue 获得您的反馈——这将对改善体验至关重要。
请务必使用 VS Code Insiders 和 GitHub Copilot Chat 扩展的预发布版本,以获取所有最新的功能和修复。获取更多关于如何安装扩展预发布版本的详细信息。
随着我们扩展 NES 的体验,您可以阅读我们的完整 NES 文档以获取更多信息和场景。
我们对 AI 的下一步发展感到兴奋,Copilot 能够预测您接下来想做什么——最好的提示就是那个您无需编写的提示。我们希望您也同样兴奋,并期待看到您构建的成果!
代理模式
自上周发布的 VS Code Insiders 版本起,GitHub Copilot Edits 现已提供代理模式选项。
Copilot Edits 中的代理模式能够迭代自己的代码——自动识别并修复错误,执行完成请求任务所需的任何终端命令,并具备自我修复能力来解决运行时错误。GitHub Copilot 现在不再仅仅执行用户请求的任务,而是能推断出所有未明确指出但为使主要请求正常工作而必须完成的其他任务。
我们看到了 GitHub Copilot 代理模式的巨大潜力。它每天都在进步,但我们希望能尽快将其交到您的手中。请关注此领域,在接下来的几周内,我们将对体验进行重大更改和改进。在您试用时(目前在 VS Code Insiders 中,稍后在 VS Code Stable 中),请分享您的反馈。
您可以在我们的文档中阅读更多关于代理模式的信息。
视觉
此版本的 VS Code Insiders 还为 GitHub Copilot 带来了视觉支持。
不得不一次又一次地将您所看到的内容翻译成描述给 Copilot,这可能令人沮丧。在处理用户界面或询问如何在编辑器中配置某些内容时尤其如此。现在,您只需在提示中附上一张截图,Copilot 就能看到您所看到的一切。您可以……
- 从剪贴板粘贴
- 从资源管理器视图拖放图片
- 附上当前 VS Code 窗口的截图(选择“附加” > “窗口截图”)
这开启了各种各样的场景……
- 将设计稿交给 Copilot,让它生成 UI 代码。
- 提供一个不正确的界面截图,让 Copilot 帮助您修复布局。
- 为 HTML 和 Markdown 中的图片生成替代文本。
- 提供错误的截图
视觉功能现已在 VS Code Insiders 中可用,并向所有人开放。目前唯一支持的模型是 GPT 4o,对其他模型的支持正在开发中。当前支持的图片类型包括 JPEG/JPG、PNG、GIF 和 WEBP。
新年,新 Copilot
我们对 Copilot 作为 AI 结对程序员有着宏伟的计划,它不仅向所有人免费提供,而且不断突破 AI 的界限,从而极大地提升您的生产力和幸福感。
我们从未停止改进 VS Code 本身,所以请查看我们最近的发布说明,了解所有全新的功能。我们坚持确保您拥有最佳版本的代码编辑器和最棒的 AI 结对程序员。
我们知道 AI 世界日新月异,因此请务必在 X/Bluesky/LinkedIn 上关注我们,我们将让您轻松掌握所有最新最强的 Copilot 功能。
编程愉快!
Brigit 和 Burke