AB
AiBoss
Tutorials

Visual Studio IntelliCode

Tutorials

在 Visual Studio 中启用并配置 IntelliCode 智能补全

IntelliCode 把 AI 排序后的补全建议放到 IntelliSense 列表顶部,并支持参数补全与 C# 整行补全。本文说明安装方式、支持的语言与工作负载、预览功能开关、团队补全的现状,以及补全建议不出现时的排查思路。

Visual Studio IntelliCode 是 Visual Studio 内置的 AI 辅助编码功能。它不改变 IntelliSense 的基本工作方式,而是在补全列表里做一件很具体的事:把当前代码上下文中最可能被用到的成员、方法或属性排到列表最前面,并在旁边标一个星形图标。普通 IntelliSense 按字母顺序或声明顺序列出成员,IntelliCode 则根据上下文和大量开源项目训练出的模型给出排序。除此之外,它还提供参数补全、C# 的整行补全,以及在 C# 中检测重复编辑并建议在相似位置应用相同操作。如果你希望减少在长补全列表里翻找的时间,这篇教程会带你完成安装确认、功能开关、语言支持核对和常见问题排查。站内也有对应的工具条目可供参考:Visual Studio IntelliCode。

准备工作

IntelliCode 不是一个需要单独下载安装的独立产品,它随 Visual Studio 的工作负载一起分发。开始之前需要确认以下几项。

  • Visual Studio 版本:需要 Visual Studio 2019 版本 16.4 或更高版本。低于这个版本无法获得随工作负载分发的 IntelliCode。
  • 工作负载:安装 Visual Studio 时选择受支持的工作负载,例如 .NET 桌面开发。IntelliCode 默认包含在大多数工作负载中。
  • 语言环境:确认你要写的语言在支持列表内,详见下一节。
  • 账号:IntelliCode 对所有 Visual Studio 用户可用,不需要额外订阅。素材中没有提到 IntelliCode 本身需要登录或购买许可。

如果你已经装好 Visual Studio 但不确定 IntelliCode 是否存在,可以打开「扩展 > 管理扩展」,在已安装列表里查找 IntelliCode 扩展。能找到就说明它已经随工作负载装上了。

支持的语言与工作负载

AI 辅助的 IntelliSense 补全支持以下语言:

  • C#
  • XAML
  • C++
  • JavaScript 与 TypeScript(TypeScript 需要 3.4.2 或更高版本)
  • Visual Basic

在 Visual Studio 2019 版本 16.4 中,IntelliCode 作为以下任一工作负载的一部分被包含:Azure 云开发、.NET 桌面开发、使用 .NET 的移动开发、使用 Unity 的游戏开发、.NET Core 跨平台开发、ASP.NET 和 Web 开发、Visual Studio 扩展开发、通用 Windows 平台开发、Office/SharePoint 开发、使用 C++ 进行桌面开发、使用 C++ 的游戏开发、使用 C++ 进行移动开发、使用 C++ 的 Linux 开发。如果你安装的工作负载不在其中,可能需要补装一个受支持的工作负载,或者通过 Visual Studio 安装程序调整组件。

操作步骤

第一步:确认或安装 IntelliCode

打开 Visual Studio 安装程序,检查当前实例已勾选的工作负载。如果其中包含上面列出的任意一个受支持工作负载,IntelliCode 通常已经默认安装。若不确定,可以在安装程序的「单个组件」里搜索 IntelliCode 并勾选,然后点击修改完成安装。

安装完成后启动 Visual Studio,打开任意一个受支持语言的项目文件,把光标放到一个对象实例后面输入点号,观察补全列表。如果列表顶部出现带星形图标的建议,说明 IntelliCode 已经在工作。

第二步:理解补全列表的排序方式

IntelliCode 的核心行为是把最可能正确的 API 放到列表顶部。它依据的是当前代码上下文与模式,模型来自 GitHub 上数千个经过良好分级的开源项目。因此同一个对象在不同代码位置调用时,排在前面的成员可能不同。这不是随机变化,而是上下文变化带来的排序变化。

使用时的实际操作没有变化:继续用键盘上下键选择,或者直接输入字符过滤。星形图标只是提示这一项是 IntelliCode 推荐的高概率选项,并不改变选中后的插入行为。

第三步:使用参数补全

调用方法时,IntelliCode 会列出最可能使用的参数名称,并把这些建议放在补全列表顶部。触发方式有两种:在括号内开始键入,或者按 Ctrl + 空格 手动唤出补全列表。参数补全对写长参数列表的方法特别有用,因为它把常用参数名提前,减少记忆负担。

第四步:启用整行补全(C#)

在 Visual Studio 2022 及更高版本中,C# 开发者可以使用整行自动补全。它根据当前代码预测下一个代码块,并以灰色内联文本的形式呈现。看到灰色预测后,按 Tab 接受,继续输入则忽略。这个功能只对 C# 生效,其他语言没有整行预测。

第五步:配置预览功能

部分 IntelliCode 功能仍处于预览状态,预览功能默认关闭,且不保证未来继续提供支持。要调整这些开关,打开「工具 > 选项」对话框,找到 IntelliCode 部分,在「预览功能」下为每个功能选择「启用」「禁用」或「默认」。如果你在团队里统一开发环境,建议把这项设置与团队约定对齐,避免不同成员看到不同的补全行为。

第六步:关闭星形建议(可选)

如果不需要 AI 排序,可以从菜单选择「扩展 > 管理扩展」,找到 IntelliCode 扩展并选择「禁用」。禁用后补全列表恢复为常规排序,星形图标不再出现。这是一个可逆操作,需要时重新启用即可。

一个完整示例

下面用一个 C# 控制台项目的典型流程,把上面的步骤串起来。假设你已经安装了 .NET 桌面开发工作负载和 Visual Studio 2022。

  1. 启动 Visual Studio,新建一个 C# 控制台应用项目。
  2. 在 Program.cs 中声明一个 List<string> 变量,输入变量名后键入点号,观察补全列表顶部是否出现带星形图标的成员,例如与集合操作相关的常用方法。
  3. 继续输入方法名的一部分进行过滤,确认星形建议会随输入收窄。
  4. 调用一个带多个参数的方法,在括号内按 Ctrl + 空格,观察参数名建议是否排在列表顶部。
  5. 在新的一行开始输入代码,观察是否出现灰色内联预测;按 Tab 接受,或继续输入忽略它。
  6. 打开「工具 > 选项 > IntelliCode」,查看预览功能列表,把需要试用的功能设为「启用」。
  7. 如果列表里始终没有星形图标,按下一节的排查顺序处理。

这个流程覆盖了上下文感知补全、参数补全、整行补全和预览功能开关四个可观察的行为点。任何一步不符合预期,都可以回到对应小节核对前置条件。

注意事项

补全建议不出现时的排查

最常见的原因是安装了会覆盖 IntelliSense 界面的扩展。这类扩展可能阻止 IntelliCode 的星形建议出现在列表顶部。排查方法是先禁用可疑扩展,再重新触发 IntelliSense 观察结果;如果扩展本身提供自动补全开关,也可以只关闭它的自动补全功能而不整体禁用。若禁用覆盖类扩展后问题依旧,可以使用 Visual Studio 的「报告问题」功能提交反馈,并在报告中注明 IntelliCode。

团队补全模型的现状

早期版本的 IntelliCode 提供过在自有代码上训练模型的能力,用于为团队特定的 API、框架和库排序补全项。这一功能已被替换为在本地计算机上运行的深度学习模型,并且对 C# 用户免费提供。如果你在旧资料里看到「团队完成项」的配置流程,那对应的是已经变更的旧机制,不应再按旧步骤操作。

与 GitHub Copilot 的关系

IntelliCode 与 GitHub Copilot 是两套并行的能力。C++ 用户如果希望获得更进一步的 AI 辅助编码,可以订阅 GitHub Copilot;Copilot 与 Visual Studio IntelliSense 协同工作,可以改进代码补全效果。GitHub Copilot 需要订阅,但提供免费试用用于评估。IntelliCode 本身对所有 Visual Studio 用户可用,不需要 Copilot 订阅。两者的价格、试用期限与可用地区请以官网当前信息为准。

遥测与数据收集

IntelliCode 会收集部分匿名使用情况和错误报告数据以改进产品。用户定义的代码不会被发送给 Microsoft,但会收集你使用 IntelliCode 结果的信息。对于开源项目或 .NET 类型与成员的基础模型建议,会记录你是否选中了 IntelliCode 建议以及建议的名称,用于监控基础模型质量。对于自定义模型,只检测是否选中建议,不记录用户定义的类型或方法名称。

如需关闭 IntelliCode 的数据收集,选择退出 Visual Studio 体验改善计划:在菜单栏选择「帮助 > 隐私 > 设置」,在「Visual Studio 体验改善计划」对话框中选择「否,我不想参与」,然后点击「确定」。

版本与功能可用性

整行补全仅在 Visual Studio 2022 及更高版本的 C# 中可用;TypeScript 支持要求 3.4.2 或更高版本;预览功能默认关闭且不保证长期支持。功能集合、版本要求与订阅价格都可能随产品更新而变化,实际以官网当前信息为准。