编写代码时的 AI 帮助

IntelliCode 整行自动完成功能根据当前代码预测下一个代码区块,并呈现为灰色文本内联预测。 想想在键入电子邮件时看到的灰色文本自动完成,只不过此处用于代码。

此功能支持 Visual Studio 2022 中的 C#。

Screenshot of Whole Line Completion by IntelliCode in Visual Studio.

工作原理

IntelliCode 使用大规模转换器模型,该模型在来自 GitHub 的约 50 万个公共开源存储库上进行训练。 此模型通过充分掌握至今的已编码内容来预测接下来要键入的内容,这些内容包括:

  • 变量名称和位置
  • 你使用的库
  • 附近代码中的函数
  • IntelliSense 列表

该模型在本地计算机上运行,该功能可在脱机和空隙环境中使用。 此功能支持 C#。

两种模式

IntelliCode 以两种方式提供完成 - 一种是在用户键入内容时,第二种是用户在 IntelliSense 列表中选择了项时。

模式 1:键入时整行自动完成

当用户键入时,我们将显示整行自动完成,可以通过“要接受的选项卡”来接受。若要消除预测,可以使用 EscDelete 键。

Screenshot displaying Tab to accept whole-line autocompletion.

模式 2:选择 IntelliSense 项时的整行自动完成

当用户选择了 IntelliSense 列表中的项时,IntelliCode 将使用用户已键入的项以及用户已选择的项作为提供预测的上下文。 在此示例中,将看到“要接受的选项卡”预测。 第一个选项卡接受 IntelliSense 列表中的选定项,第二个选项卡接受整行完成。 若要消除预测,可以使用 EscDelete 键。

Screenshot displaying Tab Tab to accept selected completion item and whole line completion.

接受或消除整行完成

默认情况下,Tab 键用于接受整行自动完成。 若要更改默认接受键,请对整行代码选择“工具”->“选项”->“IntelliCode”->“完成”。 启用名为 Apply completions for whole lines on right arrow 的设置。

Screenshot of Settings menu to change setting to make right arrow as accept character.

这样做会将接受键从 Tab 更改为右箭头 ->

Screenshot of Settings menu to change right arrow to accept whole-line autocompletion.

若要消除整行自动完成,可以使用 ESCDelete 键。

隐私

请参阅隐私相关信息

控制整行自动完成

可以使用编辑器右下角显示的紫色小灯泡(缩放控件旁边)来控制整行自动完成功能。

Screenshot of setting for turning IntelliCode whole-Line autocompletions on or off.

第一个设置为 Show completions for lines of code,用于启用或关闭此整行自动完成。

第二个设置为 Wait for pauses in typing before showing line completions,启用后,系统将仅在用户暂停键入时显示整行自动完成。 如果发现整行自动完成在默认模式下分散注意力,你可能更喜欢此选项。

第三种设置为 Show completions on new lines,可以根据输入新行时是否想要查看整行自动完成来启用或关闭该设置,即按 ReturnEnter

提供反馈

单击 Visual Studio 右上角的“反馈”图标来提交反馈票证。 (可选)可以将 IntelliCode 日志文件上传到反馈票证中,以便向我们提供其他上下文。 请确保查看日志文件的内容,并说明你可能遇到的任何隐私问题。 与我们共享此数据时,此数据仅会用于为你提供支持协助。 可在 %LOCALAPPDATA%\Temp\VSFeedbackIntelliCodeLogs 找到日志

Screenshot of submitting feedback for IntelliCode.

第二个设置为 Wait for pauses in typing before showing line completions,启用后,系统将仅在用户暂停键入时显示整行完成。 如果用户发现默认模式下的整行完成会分散注意力,他们可能更喜欢此选项。

第三种设置为 Show completions on new lines,可以根据用户在输入新行时是否想要查看整行完成来启用或关闭该设置,例如通过按 ReturnEnter

后续步骤

请参阅隐私相关信息