本文介绍 Visual Studio 2022 17.14 中的新功能"下一个编辑建议 (NES)",它增强了 GitHub Copilot 在简单代码补全之外的能力。与传统光标位置补全不同,NES 分析历史编辑记录,预测并建议下一次可能发生的代码更改,包括插入、删除或修改,这些更改可能发生在代码文件的任何位置。该功能通过实际示例进行演示,例如将 2D 类重构为 3D,更新旧的 C++ 语法,以及根据新变量进行逻辑代码修改。NES 通过内联 Diff 视图和导航提示提供建议,允许用户轻松接受或拒绝更改。NES 旨在辅助逻辑编辑流程。
主要内容
-
- NES 基于最近更改预测并建议下一次代码编辑。
NES 分析历史编辑记录,预测用户可能的修改位置和方式,超越传统光标处的代码补全功能。
-
- 建议可出现在文件任何位置,辅助多处协同编辑。
与传统的代码补全不同,NES 识别不同行上可能的编辑,并通过导航提示和集成的差异视图来指导用户。
-
- NES 支持从代码重构到语法更新的各类场景。
此功能支持多种场景,涵盖代码重构和语法更新。
Visual Studio GitHub Copilot 中的下一条编辑建议现已可用
GitHub Copilot 代码完成建议,或灰色文本,专长于自动完成未完成的代码或提供有用的模板代码。实际上,编码活动远不止编写新代码。如果 Copilot 不仅能更好地帮助您生成代码,还能帮助您进行代码编辑活动,那会怎样?
我们很高兴宣布,在下一次编辑建议 ,或简称 NES ,现已在 Visual Studio 2022 17.14 中推出,以进一步提升您的编码体验。NES 利用之前所做的编辑来预测即将发生的编辑,无论是插入、删除还是两者的混合。与仅限于在光标位置生成建议的 Copilot 完成建议不同,NES 可以在文件中的任何位置支持您,因为下一个编辑最有可能发生在这里。
示例使用场景
接下来的编辑建议在多种场景下都会有所帮助,不仅限于显而易见的重命名等重复性更改,还可以在添加/删除变量或改变方法意图时进行更逻辑上的更改。以下是一些示例:
1. 将 2D 点类重构为 3D 点类:
2. 将代码语法更新为现代 C++(使用 STL):
请注意,NES 不仅会重复地将所有的"printf()"更新为"std::cout",还会更新其他语法,如"fgets()"。
3. 根据新添加的变量做出逻辑上的更改:
NES 会迅速响应新变量,添加游戏中玩家可以猜测的最大次数,同时 Copilot 完成也会介入提供帮助。
开始使用下一个编辑建议
通过 工具 > 选项 > GitHub > Copilot > Copilot 完成 > 启用下一个编辑建议 启用 NES。
就像自动补全一样,你只需要开始编码就能获得 NES!
如果有可用的编辑建议,这些建议可以在一个差异视图中呈现,其中红色差异表示你原来的代码,绿色表示 Copilot 建议的新代码,清晰地显示了你原始代码中的任何替换或删除。
如果编辑不在你当前所在的行上,它会建议你先按 Tab 跳转到对应的行。提示栏中的箭头会指示下一个编辑的位置。你不需要手动查找相关编辑;NES 会为你导航!

编辑到同一行后,你可以按 Tab 接受建议。

除了提示栏,代码边栏还会弹出一个箭头,以指示有编辑建议可用。你可以点击箭头来查看编辑建议菜单。这个菜单允许你在不需要按 Tab 键的情况下使用鼠标与 NES 进行交互。

逐步了解下一条编辑建议的解释:
请今天尝试一下 NES,让它帮助你进行逻辑编辑流程!如果你有任何反馈,我们的团队非常乐意通过 开发者社区听取你的意见,帮助我们不断迭代和改进 NES!
查看新的 Visual Studio 聚合中心
在一处连接 Visual Studio 的一切!访问 Visual Studio Hub 获取最新版本更新、YouTube 视频、社交动态和社区讨论。