Copilot 下一步编辑建议(预览)
2025 年 2 月 12 日,作者:Brigit Murtaugh,Burke Holland
在 Visual Studio Code 的此版本中,我们很高兴地宣布 GitHub Copilot 的预览功能不止一个、不止两个,而是三个
- 下一步编辑建议
- 适用于 Copilot Edits 的 代理模式
- 视觉支持
在本文中,我们将深入探讨“下一步编辑建议”,并一窥编辑器中由 AI 驱动的代码补全的下一代演进。
下一步编辑建议 (NES)
GitHub Copilot 代码补全(也称为幽灵文本)非常擅长自动完成。与 GitHub Copilot 协作时,最令人惊叹的感觉之一是它在你甚至还没提出要求时就建议了你脑海中的代码。但大多数编码活动既涉及编写新行,也涉及编辑现有代码。因此,代码补全也适用于现有代码是自然而然的下一步。
我们将此称为下一步编辑建议,简称 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 正在快速演进,我们迫不及待地希望通过我们的仓库中的 Issues 收到你的反馈——这将有助于改进用户体验。
请务必使用 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