作者:Brigit Murtaugh,Burke Holland
排版:Alan Wang
我们很高兴向你介绍在本次 Visual Studio Code 发布中,关于 GitHub Copilot 的三个预览功能:
在这篇文章中,我们将深入探讨 Next Edit Suggestions,了解 AI 驱动的代码补全在编辑器中的最新发展。
NES_13">Next Edit Suggestions(NES)
GitHub Copilot 的代码补全功能(也被称为“幽灵文本”)在自动补全方面表现出色。当它在无需明确请求的情况下,直接建议出你心中所想的代码时,那种感觉非常奇妙。然而,大多数编码活动不仅涉及编写新代码,还需编辑现有代码。因此,将补全功能扩展到现有代码的编辑是自然而然的下一步动作。
我们称之为 Next Edit Suggestions,简称 NES。是的,这个缩写也让我们想起了经典的游戏机。
Copilot NES video
NES_19">开始使用 NES
要开始使用 Copilot NES,首先需要启用 VS Code 设置中的 github.copilot.nextEditSuggestions.enabled
。
与代码补全类似,开始获取 NES 的建议,你只需开始编码即可!
当出现编辑建议时,使用 Tab 键导航到该建议,然后再次按下 Tab 键接受它。无需手动搜索相关文件或引用。Copilot NES 会跟踪你下一个相关的编辑!
代码行旁的箭头表示有可用的编辑建议。将鼠标悬停在箭头上,可以查看编辑建议菜单,其中包含键盘快捷键和设置配置:
如果你已经滚动过了该编辑建议,箭头会提示你下一个编辑建议的位置,在当前文件位置点击向上或向下即可:
开始使用 NES
建议的范围可以是单个符号、整行代码,甚至是多行代码,具体取决于潜在更改的范围。
注意:
更新设置后,请重新加载 VS Code 以使其生效。 如果你是 Copilot Business 或 Enterprise 用户,除了在编辑器中设置github.copilot.nextEditSuggestions.enabled
外,你所在组织的管理员还必须选择加入使用 Copilot 的“编辑器预览功能”。 你可以了解更多关于在组织中管理 Copilot 策略的信息。
示例场景
Copilot NES 是你在进行可能影响整个文件或项目的更改时的 AI 伙伴,以下是一些它表现出色的场景示例。
捕捉和纠正错误:错误是编写代码中的常见现象,Copilot NES 可以帮助捕捉它们(有时甚至在你意识到错误存在之前!)。
NES 可以帮助我们纠正小错误,如拼写错误——比如你在快速编码时,将 const
写成了 conts
:
NES fixing a typo
NES 也可以帮助解决更具挑战性的逻辑错误,例如倒置的三元表达式:
NES fix logic mistake
我们的开发团队一直在内部使用 NES,其中一位工程师在撰写这篇博客时回忆起他第一次使用 NES 的“顿悟”时刻。他写了一个类似 if (something !== 'a' || something !== 'b')
的条件语句。NES 发现该语句总是返回 true(感谢德摩根定律!),并建议将 ||
替换为 &&
以使代码有效:
NES fixi if statement mistake
更改意图:Copilot NES 会根据意图的变化提出相应的更改建议。例如,将类从 Point
更改为 Point3D
,NES 会建议在类定义中添加 z
变量,并更新距离计算:
NES updating Point to Point3D
使用新添加的变量或逻辑:Copilot NES 帮助你使用刚添加的新代码。这可能是一个小的更改,例如在方法中调用新的参数。
也可能是更复杂的情况:如果你在 VS Code 扩展的 extension.ts
中添加了新命令,NES 会首先建议在 extension.ts
中清理该命令。然后,当你打开 package.json
时,NES 会建议注册该命令:
NES updat extension project
重构:如果你使用了新的名称或命名模式,Copilot NES 会建议相应地更新后续代码:
Copilot NES 会建议相应地更新后续代码
阅读我们的完整 NES 文档,了解更多信息和场景,我们将不断扩展 NES 的体验。
分享你的反馈
Copilot NES 正在快速发展,我们期待你通过在我们的仓库中提交 issue 来提供反馈——这对改进体验至关重要。
请确保使用 VS Code Insiders 和 GitHub Copilot Chat 扩展的预发布版本,以获取所有最新功能和修复。了解如何安装扩展的预发布版本的更多详细信息。
你可以阅读我们的完整 NES 文档,了解更多信息和场景,我们将不断扩展 NES 的体验。
我们对 Copilot 在 AI 领域可预见的下一步发展感到非常兴奋——最好的提示是无需编写提示。我们希望你同样感到兴奋,期待看到你构建的内容!
Agent_Mode_80">代理模式(Agent Mode)
从上周的 VS Code Insiders 版本开始,GitHub Copilot Edits 现在有了代理模式选项。
Copilot Edits 的代理模式能够对其自身的代码进行迭代——识别错误并自动修复它们,执行完成请求任务所需的任何终端命令,以及通过自我修复功能解决运行时错误。GitHub Copilot 现在不仅可以执行用户请求的任务,还可以推断所有未明确指定但需要完成的其他任务。
Copilot agent mode video
我们认为 GitHub Copilot 的代理模式(Agent Mode)有着巨大的潜力。它每天都在变得更好,但我们希望尽快让你体验它。在接下来的几周内,我们将不断优化用户体验,带来重大改进。请持续关注,并在尝试时分享你的反馈(今天可在 VS Code Insiders 中使用,未来也将支持 VS Code Stable)。
你可以在我们的文档中了解更多关于代理模式的信息。
Vision
本次 VS Code Insiders 版本还为 GitHub Copilot 带来了 Vision 支持。
在与 Copilot 交互时,不断重复将所见内容转换为描述可能会令人沮丧,尤其是在处理用户界面或询问如何配置编辑器时。现在,你可以直接附加截图,让 Copilot 看到你所看到的内容。
你可以通过以下方式提供图片:
- 从剪贴板粘贴
- 从 Explorer 视图中拖放图片
- 附加当前 VS Code 窗口的截图(选择 Attach > Screenshot Window)
这项功能解锁了许多新场景,例如:
- 提供 UI 设计稿,让 Copilot 生成 UI 代码
- 提供界面截图,让 Copilot 帮助修复布局问题
- 在 HTML 或 Markdown 中为图片生成替代文本
- 提供错误截图,方便 Copilot 诊断问题
Vision 目前已在 VS Code Insiders 中可用,并对所有用户开放。目前仅支持 GPT-4o 模型,未来将添加对其他模型的支持。目前支持的图片格式包括 JPEG/JPG、PNG、GIF 和 WEBP。
新的一年,新的 Copilot
我们对 Copilot 作为 AI 编程助手的未来充满期待。我们的目标不仅是让它免费开放给所有人,还要不断突破 AI 的极限,极大地提升你的生产力和幸福感。
我们也在持续改进 VS Code,欢迎查看我们的最新发布说明了解所有新功能。我们致力于确保你拥有最好的代码编辑器和最智能的 AI 编程助手。
AI 领域发展迅速,想要随时掌握 Copilot 的最新动态?欢迎关注我们,第一时间了解最新功能。
祝编码愉快!