2025年10月(版本 1.106)
发布日期:2025年11月12日
更新 1.106.1:此更新修复了以下 问题
更新 1.106.2:此更新修复了以下 问题
更新 1.106.3:此更新修复了以下 问题
下载:Windows:x64 Arm64 | Mac:Universal Intel silicon | Linux:deb rpm tarball Arm snap
欢迎使用 Visual Studio Code 2025 年 10 月版。

本次发布在以下三个关键领域带来了重大更新:
- Agent HQ:为您提供单一视图来启动、监控和审查 Agent 会话,无论是本地还是远程,来自 Copilot 还是 OpenAI Codex。
- 安全与信任:帮助您保持控制,自信地将更多任务委托给 AI。
- 卓越的编辑器体验:让您的日常编码工作更流畅、更愉快。
观看我们的 VS Code 1.106 发布亮点视频,聆听工程师介绍这些功能!
编码愉快!
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新页面。
Insiders:想尽快尝试新功能?
您可以下载每晚的 Insiders 构建版本,并尽快尝试最新更新。
下载 Insiders
代理
Agent 会话视图
设置: chat.agentSessionsViewLocation
当您将任务移交给不同的编码 Agent 时,清晰地总览所有活动会话非常重要。Agent 会话视图提供了一个用于管理活动聊天会话的中心化位置。这包括 VS Code 中的本地会话,以及由其他环境中的后台 Agent(如 Copilot 编码 Agent、GitHub Copilot CLI 或 OpenAI 的 Codex)创建的会话。Agent 会话视图现已默认启用,并可通过 chat.agentSessionsViewLocation 设置进行管理。
默认情况下,Agent 会话视图会按来源列出您所有的活动聊天会话。该视图分为 VS Code 本地聊天会话和后台 Agent 会话两个部分。

如果您希望在所有提供商之间拥有一个整合的会话视图,可以为 chat.agentSessionsViewLocation 设置启用 single-view 选项。此选项还会将 Agent 会话视图移至二级侧边栏中的聊天视图旁边,从而更轻松地在聊天和管理会话之间切换。
请注意,并非所有功能都已在整合视图中可用。我们正在积极努力,争取在不久的将来将此视图作为默认设置。
Agent 会话视图现在还支持搜索(⌥⌘F (Windows, Linux Ctrl+Alt+F)),以帮助您在列表中轻松找到会话。
在 VS Code 文档中了解有关 Agent 会话视图的更多信息。
计划 Agent
一个新的规划 Agent 可帮助开发者在编写代码之前逐步拆解复杂任务。在聊天视图的 Agent 下拉菜单中选择 Plan 即可开始。在处理多步骤实现时,VS Code 会向您提出澄清性问题,并生成一份详细的实现计划供您预先批准,确保在最开始就捕获所有需求和上下文。
我们建议在实现之前花时间迭代该计划。您可以多次完善需求、调整范围并解决悬而未决的问题,从而打下坚实的基础。一旦您批准该计划,Copilot 将在本地 VS Code 或通过 云端 Agent 执行它,让您对开发过程拥有更大的控制力和可见性。这有助于您及早发现差距或未决决策,从而减少返工并提高代码质量。
您还可以创建适合团队特定工作流程和工具的自定义规划 Agent。使用 Configure Custom Agent 菜单复制内置的规划 Agent 作为起点,然后自定义规划风格、工具和提示,以匹配您的开发流程。了解有关 VS Code 聊天规划和创建自定义 Agent 的更多信息。
云智能体
在此版本中,我们对编辑器中的云端 Agent 会话进行了不少更新。
我们将 Copilot 编码 Agent 集成从 GitHub Pull Request 扩展迁移到了 Copilot Chat 扩展中,以在 VS Code 中提供更原生的云端 Agent 体验。此次集成铺平了 VS Code 与 GitHub Mission Control 之间进行更顺畅转换和交互的道路,例如直接从浏览器中的 Agent 会话视图打开云端 Agent 会话,反之亦然。
CLI Agent
在此版本中,我们还发布了与 Copilot CLI 的初步集成。您可以在聊天编辑器或集成终端中创建新的 CLI Agent 会话并恢复现有会话。

在 CLI Agent 编辑器中,您可以像在终端中一样向 Copilot CLI 发送消息、切换模型并附加上下文。

Agent 委托
我们持续优化委托给云端 Agent 的体验。
当您在聊天面板中使用云端按钮委托给 Agent 时,系统会为您提供一组可供委托的 Agent。您还可以通过 CLI 编辑器或终端实例中的 /delegate 命令,从 CLI 委托给 Copilot 编码 Agent。

CLI Agent 编辑追踪
聊天编辑会话现在可以追踪后台 Agent(如 Copilot CLI)所做的编辑。当您从 Agent 会话视图创建会话时,可以通过内联编辑标记(pill)和工作集视图看到追踪到的编辑,从而更容易理解 Agent 对您的工作空间做了哪些更改。
聊天模式重命名为自定义 Agent
在整个 VS Code 中,“聊天模式”已重命名为“自定义 Agent”,以更好地与在其他环境中使用术语保持一致。

当您创建自定义 Agent 时,定义文件现在位于工作空间的 .github/agents 中。这些文件可以使用 .agents.md 后缀,并可用作 GitHub Copilot 云端 Agent 和 CLI Agent。
使用 Chat: New Custom Agent... 创建新 Agent,使用 Chat: Configure Custom Agents... 管理它们。
如果您有现有的自定义聊天模式(.github/chatmodes 中的 .chatmode.md 文件),它们将继续工作并被自动视为自定义 Agent。当您在编辑器中打开聊天 Agent 文件时,第一行会出现一个信息标记,并附带快速修复选项,可将其迁移为自定义 Agent 文件。
自定义 Agent 元数据
自定义 Agent .agent.md 文件现在接受一个额外的 target 前置元数据属性,用于描述 Agent 应如何在不同环境中运行:
target: vscode:优化了本地聊天 Agent,并解锁name、description、argument-hint、model、tools和handoffs属性。VS Code 中安装的任何工具都可以使用。target: github-copilot:为 Copilot 云端 Agent 或 GitHub CLI 准备 Agent,支持name、description、tools、mcp-servers和target。工具可以是edit、search、shell、custom-agent以及来自 MCP 服务器的工具。
所有 Agent 均可在所有环境中运行。每个环境都会忽略未知的属性和工具。
name:允许您覆盖 Agent 标签,而无需重命名文件。argument-hint:在聊天输入框中显示指导,以便团队成员知道如何提示 Agent。handoffs:引导过渡到其他 Agent,让您可以串联多步骤工作流程。
Agent 文件编辑器提供验证、代码补全、悬停提示和代码操作。

在我们的文档中了解有关自定义 Agent 和 Agent 交接的更多信息。
代码编辑
差异编辑器中删除的代码现可选择
以前,当您删除代码并在差异编辑器中查看更改时,无法复制那些已删除的行。在此版本中,当使用内联差异视图时,您可以选择并复制差异编辑器中已删除行的文本。
内联建议现已开源
此版本延续了我们将 VS Code 打造成开源 AI 编辑器的征程。继我们开源 GitHub Copilot Chat 的第一里程碑之后,我们现在通过将其合并到 vscode-copilot-chat 存储库中,实现了内联建议的开源。
作为此里程碑的一部分,我们正在将 GitHub Copilot 扩展和 GitHub Copilot Chat 扩展整合为一个单一的扩展体验。Chat 扩展现在服务于所有内联建议,提供您所习惯的相同智能代码建议,同时保留所有聊天和 Agent 功能。此更改应该是透明的,您在打字时将继续获得相同的代码建议。如果您遇到任何问题,可以使用 chat.extensionUnification.enabled 设置临时回退。
GitHub Copilot 扩展将于 2026 年初被弃用。详细了解此里程碑并在我们的博客文章中浏览开源代码。
从侧边栏图标暂停内联建议
您现在可以直接从侧边栏(gutter)图标暂停内联建议。当您将鼠标悬停在侧边栏图标上时,会出现一个带有 Snooze(暂停)选项的控件。选择它并选择持续时间以暂停建议。

“转到行”改进
在本次迭代中,我们对 Go to Line(转到行)命令(⌃G (Windows, Linux Ctrl+G))进行了多项增强,改善了文件内的导航。
Go to Line 命令现在支持通过使用 :: 语法导航到文件中的特定字符位置。当工具报告特定字符偏移量处的错误(例如“位置 599 处出错”)时,这非常有用。
要导航到字符偏移量,请在 Go to Line 输入框中输入 ::,后跟字符编号。例如:
::599- 导航到文件中的第 599 个字符::-100- 从文件末尾开始导航 100 个字符
使用输入框中的切换开关,可以在 1 基(默认)和 0 基偏移计算之间进行切换。
此外,Go to Line 命令还可以更优雅地处理超出范围的值,并更容易导航到文件和行的开头或结尾:
- 行号:输入大于文件行数的行号将导航到最后一行。
- 列号:使用负列号从行尾开始导航。例如,
:12:-1会将您带到第 12 行的最后一个字符。输入大于行长度的列号会将您带到行尾。
编辑器体验
图标焕新
在此版本中,codicon 图标集焕然一新。新图标经过了精心改良,采用了曲线设计、新的修饰符样式以及更准确的隐喻,使其看起来更现代、友好且更易于阅读。
![]()
Linux 策略支持
我们引入了对使用 JSON 文件管理 Linux 系统上 VS Code 策略的支持。这允许管理员在 Linux 机器的所有用户中强制执行特定的设置和配置。
更多详细信息,请参阅 Linux 上的 JSON 策略。
在多文件差异编辑器中导航更改
就像您可以跳转到单文件差异编辑器中的上一个或下一个更改一样,现在也可以在多文件差异编辑器中跨文件进行导航。使用键盘快捷键或导航箭头键来审查跨文件的更改。
复制诊断悬停文本
现在,诊断悬停框(错误、警告、信息和提示)中会出现一个复制按钮,使复制错误消息变得更加容易。当您将鼠标悬停在诊断标记上时,移动鼠标至悬停框上方,即可在右上角显示复制按钮。

命令过滤时忽略重音符号
命令面板现在在搜索命令时会忽略字符重音,无论您的键盘布局或语言偏好如何,都能更轻松地找到所需内容。例如,在搜索包含单词 Générer(法语的“生成”)的命令时,输入不带重音的 generer,匹配的命令就会出现在结果中。
这在使用不同的键盘布局或在寻找命令时误输入时非常有用。此过滤基于 Unicode 规范化形式 D,并支持所有 Unicode 语言。
高级 VS Code 设置
VS Code 现在支持“高级设置”概念。这些设置用于配置特殊场景,面向需要精细控制环境的高级用户。默认情况下,高级设置在设置编辑器中是隐藏的,这保持了界面的精简,同时在需要时也能访问这些强大的选项。
要查看和配置高级设置,请在设置编辑器的过滤下拉菜单中选择 Advanced,或者在搜索框中输入 @tag:advanced。

当您通过确切名称搜索特定设置或使用 @id: 过滤器时,高级设置会出现在结果中,而无需应用 Advanced 过滤器。这确保了您总是能找到所需的设置。
高级设置可以与其他过滤器(如 @modified 或 @feature:)结合使用,以帮助您准确找到所需内容。例如,@tag:advanced @feature:terminal 仅显示与终端相关的高级设置。
注意:扩展作者可以通过将
advanced标签添加到设置配置中,来将自己的设置标记为高级。
聊天
基于嵌入向量的工具选择
在此版本中,我们显着改进了对在聊天中启用了许多(超过 100 个)工具的用户的过滤和分组方式。您应该会更少看到且更短时间看到“优化工具选择...”的加载状态。我们还改进了工具选择,降低了 Agent 混淆的可能性,以确保选择正确的工具。
工具批准与信任
外部数据的后批准(Post-approval)
引入外部数据的 Agent 工具现在支持后批准。这有助于防止潜在的提示注入攻击,因为它允许您在数据用于聊天会话之前对其进行审查。
#fetch 工具以及声明了 openWorldHint 的模型上下文协议 (MCP) 工具现已启用后批准功能。
信任服务器或扩展的所有工具
您现在可以通过“允许”按钮下拉菜单在源级别信任 MCP 服务器和扩展工具。这意味着您可以一次性批准来自特定 MCP 服务器或扩展的所有工具,而无需逐个批准。
我们还更新了 Chat: Manage Tool Approval 命令体验,让您可以同时管理工具的预批准和后批准。

工具自动批准状态位置已移动
自动批准状态已从聊天视图内部移至工具调用状态/勾选图标处。

终端工具
自动批准解析器改进
以前,终端工具中的子命令检测使用了一种仅通过 | 或 && 等特定字符串进行拆分的原始方法。这种方法在多种情况下会失败,其中最大的问题是当管道符号用在字符串内部时,例如 echo "a|b|c",它会将子命令检测为 echo、b 和 c"。另一个重要问题是,由于无法可靠地提取子命令,我们直接禁止了圆括号对、花括号对和反引号,以确保安全并防止意外执行。
在此版本中,我们将一个解析器集成到此功能中,并为其他所有内容使用 PowerShell 语法或 bash 语法*。因此,即使是非常复杂的情况也能被正确提取。

* 请注意,这意味着当 shell 语法不同于 bash(例如 zsh 中的 ;)时,它可能无法捕获子命令。
文件写入/重定向检测(实验性)
得益于新的解析器,我们能够相当可靠地提取通过重定向写入的文件。有一个新的实验性设置 chat.tools.terminal.blockDetectedFileWrites ,它将有条件地阻止自动批准。

禁用默认自动批准规则(实验性)
新的实验性设置 chat.tools.terminal.ignoreDefaultAutoApproveRules 允许禁用默认规则(包括允许和拒绝规则)。如果您想在无需查找默认值的情况下获得更多控制权,这很有用。
Shell 特定提示和命令重写
终端工具现在针对 PowerShell、bash、zsh 和 fish 提供了特定的 shell 描述。这应该使 Agent 建议的命令更可靠,失败的可能性更小,特别是对于 PowerShell。
此外,对于 PowerShell,我们还将 && 重写为 ;,因为 Windows PowerShell (v5) 不支持 && 链运算符。请注意,在 vscode#274548 得到处理之前,这也将暂时对 PowerShell 7 执行。
将终端命令附加到聊天
您现在可以从命令装饰的上下文菜单中将终端命令作为上下文附加到聊天中。附件共享命令行、捕获的输出和退出代码,以便 Agent 精确理解发生了什么。这适用于 shell 集成追踪的任何命令,从而无需复制和粘贴文本即可轻松升级故障排除。
在聊天中查看终端输出(实验性)
新的 chat.tools.terminal.outputLocation 设置控制输出的显示位置。默认的 none 值可防止终端扰乱面板。
每个聊天终端调用现在都会在进度元素上显示两个操作:
- Show Terminal(显示终端):显示并聚焦隐藏的会话;如果具有丰富的 shell 集成,则直接滚动到相关命令。在基本或无 shell 集成的情况下,该操作仍会聚焦正确的终端选项卡。
- Show Output(显示输出):在聊天视图内以内联方式打开终端的最终输出。当命令以非零代码退出时,输出视图会自动展开。
当 npm i 失败时,输出会自动展开。终端将通过 Show Terminal 内联操作显示出来。
发现隐藏的聊天终端(实验性)
当 setting(chat.tools.terminal.outputLocation):none 时,当至少有一个隐藏的聊天终端时,终端选项卡视图中会出现一个新的 X hidden terminal(s) 按钮。它会打开一个快速选择列表,列出每个聊天终端及其关联的聊天会话,以便您立即聚焦正确的进程。同一个选择器可在终端溢出菜单下的 View Hidden Chat Terminals 中使用,并且在所有聊天终端都可见后消失。
Agent 运行 ls -la,执行成功,因此输出折叠。从选项卡视图执行 hidden terminal 操作,终端被选中、显示并滚动以突出显示命令。
将会话保存为提示词
您现在可以使用 /savePrompt 命令将聊天会话保存为可重用的提示词。当您在活动聊天会话中调用 /savePrompt 时,VS Code 会基于您的对话生成一个包含通用提示词的提示词文件。编辑器会显示一个蓝色按钮,让您将此提示词保存到有效位置,无论是用户级别还是工作空间级别。

此功能取代了以前的 /save 命令,并为捕获和共享有用的对话模式提供了更简化的工作流程。生成的提示词可以轻松地在未来的聊天会话中重用,或与您的团队共享。了解有关自定义提示词文件的更多信息。
编辑欢迎提示词
您现在可以右键单击聊天欢迎视图中的建议提示词以访问其他操作。右键单击提示词(或按 Shift+F10)时,会出现一个上下文菜单,其中包含 Edit Prompt File(编辑提示词文件)选项,可直接在编辑器中打开相应的提示词文件。
编辑提示词文件适用于具有关联文件的提示词,包括用户自定义的提示词和通过 chat.promptFilesRecommendations 设置配置的项目特定提示词。

了解有关自定义提示词文件的更多信息。
自动打开编辑过的文件
设置: chat.openEditedFilesAutomatically
我们更改了 Agent 的默认行为,不再自动在编辑器中打开已编辑的文件。如果您更喜欢之前的行为,可以启用设置 accessibility.openChatEditedFiles 。
推理(实验性)
设置: chat.agent.thinkingStyle , chat.agent.thinking.collapsedTools
在上一次迭代中,我们添加了 chat.agent.thinkingStyle 设置,以启用在聊天中显示思考过程(thinking tokens)。现在有更多的模型支持此功能!截至本版本,GPT-5-Codex、GPT-5、GPT-5 mini 和 Gemini 2.5 Pro 均已支持。
chat.agent.thinkingStyle 已调整为三种更常见的样式,默认使用 fixedScrolling 以显示最近的思考链。
附加设置 chat.agent.thinking.collapsedTools 将工具调用添加到了可折叠的思考 UI 中。

内联聊天 v2(预览)
设置: inlineChat.enableV2
我们加大了对内联聊天进行现代化的努力。它的设计旨在实现:
- 单一提示词,
- 单一文件,
- 且仅用于代码更改。
这使得整体体验更加轻量化,并实现了简化的 UI。对于无法处理的任务,系统会自动将您升级到聊天视图。
聊天视图 UX 改进
我们对聊天视图的某些部分进行了微调,使其使用起来更舒适:
- 创建新聊天的操作现在是一个下拉菜单,提供在编辑器中或在新窗口中创建聊天会话的选项。
- 工具和 MCP 服务器操作移至模型选择器旁边。
- 配置下拉菜单已清理。

现在还可以通过右键单击聊天视图中的数学表达式来复制数学源。
MCP
为您的组织访问 MCP 服务器
设置: chat.mcp.gallery.serviceUrl 此设置由组织级别管理。请联系您的管理员进行更改。, chat.mcp.access 此设置由组织级别管理。请联系您的管理员进行更改。
VS Code 现在支持通过 GitHub 组织策略配置的 MCP 注册表。这使组织能够设置自定义 MCP 注册表,并控制可以安装和启动哪些 MCP 服务器。
当在您组织的策略中配置了 MCP 注册表端点时,VS Code 将:
- 提供从配置的注册表浏览和安装 MCP 服务器的功能。
- 当启用访问限制时,仅限于启动注册表中可用的 MCP 服务器。
当您的组织配置了这些策略时, chat.mcp.gallery.serviceUrl 此设置由组织级别管理。请联系您的管理员进行更改。 设置指定 MCP 注册表端点 URL,而 chat.mcp.access 此设置由组织级别管理。请联系您的管理员进行更改。 设置控制访问是否仅限于该注册表中的服务器。这些设置在设置编辑器中将被标记为“(由组织管理)”。

要了解有关为您的组织或企业配置 MCP 服务器访问的更多信息,请参阅配置 MCP 服务器访问。
安装 MCP 服务器到工作空间配置
在安装 MCP 服务器时,您现在可以选择是将其全局安装还是安装到工作空间配置中。右键单击扩展视图中的 MCP 服务器并从上下文菜单中选择 Install (Workspace),或直接在 MCP 服务器编辑器中使用 Install (Workspace) 操作。这会将 MCP 服务器添加到当前工作空间的 .vscode/mcp.json 文件中,从而更容易与团队共享 MCP 服务器。

身份验证:Client ID Metadata Document 身份验证流程
对远程 MCP 的身份验证支持现在支持 Client ID Metadata Document (CIMD) 身份验证流程,这是 MCP 中 OAuth 的未来标准。此流程提供了比 动态客户端注册 (DCR) 更安全且可扩展的身份验证解决方案,因为现在授权服务器不必担心为每个客户端颁发客户端 ID。
当连接到使用支持 CIMD 的授权服务器的 MCP 服务器时,VS Code 将自动使用该流程而非 DCR。
有关 CIMD 的更多信息,请查看 oauth.net 上的资源。
身份验证:WWW-Authenticate 作用域提升
对远程 MCP 的身份验证支持现在通过远程 MCP 服务器的 WWW-Authenticate 标头支持动态作用域提升。这一点在 OAuth 2.0 规范中有所提及。这允许 MCP 服务器在需要时请求额外权限,而不必预先要求所有作用域。例如,连接到服务器可能只需要一组最少的作用域,但特定的工具调用可以仅在必要时请求更广泛的权限。这遵循最小权限原则,提供了更好的安全性。
这一点目前在MCP 规范的最新草案中被提及,预计很快就会最终确定。
辅助功能
语音超时默认禁用
配置 accessibility.voice.speechTimeout 已更改为默认值 0。这意味着,语音会话不再在延迟后自动结束(例如,如果您暂停,聊天请求不会自动触发)。我们认为这是一个更好的默认体验,但您可以随时改回之前的默认值 (2500)。
聊天输入改进
聊天输入框现在以更清晰的顺序通告活动的 Agent 和模型,以便屏幕阅读器用户首先听到最相关的上下文。聊天辅助功能帮助还提到,您可以按 Delete 键来删除附加的上下文项目,从而使附件管理完全可以通过键盘进行操作。
Notebook
笔记本搜索
笔记本现在支持跨单元格搜索。使用快捷键(⌘G (Windows, Linux F3) 和 ⇧⌘G (Windows, Linux Shift+F3))导航到下一个和上一个匹配项,就像在编辑器中一样。
源代码管理
Git 提交消息中的折叠支持
设置: git.verboseCommit , git.useEditorAsCommitInput
在编辑器中编写 git 提交消息时,您现在可以折叠提交消息的部分内容以保持整洁。要使用此功能,请启用 git.verboseCommit 和 git.useEditorAsCommitInput 设置。

图形化传入/传出更改
设置: scm.graph.showIncomingChanges , scm.graph.showOutgoingChanges
在本里程碑中,我们添加了在源代码控制图形视图中轻松查看传入和传出更改的功能。对于具有传入或传出更改的活动分支,图形会显示“Incoming Changes”和“Outgoing Changes”节点。选择每个节点将显示传入或传出文件的列表。

您可以使用 scm.graph.showIncomingChanges 和 scm.graph.showOutgoingChanges 设置从图形视图中隐藏此信息。
图形比较引用
我们在源代码控制图形上下文菜单中添加了一个新命令 Compare with...,使您能够将图形中的历史记录项与任意分支或标签进行比较。此功能让您可以查看在历史记录项中存在但不在分支或标签中的更改。
在上下文菜单中,有快捷命令 Compare with Remote 和 Compare with Merge Base,分别用于将历史记录项与远程分支和合并基础进行比较。
存储库选择模式
设置: scm.repositories.selectionMode
源代码控制存储库视图显示工作空间中已打开的存储库列表,并用于控制源代码控制更改视图中显示的存储库。
我们正在寻求扩展存储库视图的功能,并为准备工作引入了一个设置 scm.repositories.selectionMode ,以将存储库视图中的选择模式控制为单个存储库或多个存储库。
除了存储库视图中的新功能外,这也使我们能够删除图形视图标题中的存储库选择器,并在所有源代码控制视图中拥有一个全局存储库选择器。您可以使用此设置,或从存储库视图的 "..." 菜单中切换选择模式。

新存储库菜单
用户可以使用 scm/repository 菜单 ID 将命令贡献给新的源代码控制存储库视图中内联的源代码控制提供程序行。贡献给“inline”组的命令将内联显示,而所有其他命令将显示在 ... 菜单中。
存储库资源管理器(实验性)
设置: scm.repositories.explorer , scm.repositories.selectionMode
我们正在寻求增强存储库视图,并为每个存储库显示额外信息。要尝试此实验性功能,请设置 scm.repositories.selectionMode 和 scm.repositories.explorer 。
在第一次迭代中,我们专注于分支和标签。您可以创建新的分支、标签,查看分支和标签的列表,并对每个分支/标签执行各种操作(例如:检出等)。在接下来的里程碑中,我们将添加更多信息(例如:贮藏、远程等)。请试用此实验性功能,并让我们知道您的想法。

测试
在测试覆盖率中导航未覆盖行
在审查测试覆盖率时,您现在可以使用新的导航命令轻松地在未覆盖的行之间导航。查看覆盖率信息时,编辑器工具栏中提供两个命令:
- Go to Next Uncovered Line(转到下一个未覆盖行) - 跳转到下一个未被测试覆盖的行。
- Go to Previous Uncovered Line(转到上一个未覆盖行) - 跳转到上一个未被测试覆盖的行。
这些命令帮助您快速识别覆盖率差距,并专注于需要额外测试覆盖的区域,从而更容易提高代码库的整体测试质量。
终端
终端 IntelliSense
终端 IntelliSense 已作为实验性/预览功能在产品中存在了大约 1.5 年!在此版本中,我们移除了预览标签,并将分阶段向所有稳定版用户默认推出。
启用后,在终端中输入内容将为 PowerShell、bash、zsh 和 fish 带来类似于编辑器的 IntelliSense。

补全内容有多种来源,例如路径全部由核心处理。
一些命令具有高级规范,例如 git,它具有拉取分支名的功能。
如果我们在构建此功能中学到了什么,那就是没有“一刀切”的方案,因此有很多选项可以调整行为以获得您想要的结果:
- terminal.integrated.suggest.quickSuggestions - 根据命令行内容自动显示,而不是手动通过 Ctrl+Space 显示。
- terminal.integrated.suggest.suggestOnTriggerCharacters - 在“触发字符”(例如
-或/)后自动显示。 - terminal.integrated.suggest.runOnEnter - 在使用 Enter(而非 Tab)时选择性地运行命令。
- terminal.integrated.suggest.windowsExecutableExtensions - 在 Windows 上被视为可执行文件的扩展名列表。
- terminal.integrated.suggest.providers - 提供禁用特定提供程序的功能,例如某些插件可能会提供你不需要的补全建议。
- terminal.integrated.suggest.showStatusBar - 是否在 IntelliSense 弹出窗口底部显示状态栏。
- terminal.integrated.suggest.cdPath - 是否启用
$CDPATH集成。 - terminal.integrated.suggest.inlineSuggestion - 是否与 shell 的“虚影文本”(ghost text)集成以及如何呈现它。
- terminal.integrated.suggest.upArrowNavigatesHistory - 向上箭头键是否应发送给 shell 而不是用于浏览补全建议;这在 zsh 中特别有用,你可以通过前缀过滤后再按向上键进行历史记录搜索。
- terminal.integrated.suggest.selectionMode - IntelliSense 弹出窗口的聚焦方式,这将决定 Enter 和 Tab 键的操作。
- (新功能!) terminal.integrated.suggest.insertTrailingSpace - 接受补全后插入末尾空格并重新触发补全。
如果你还没有看到该功能,请确保已启用 shell 集成,并通过设置中的 terminal.integrated.suggest.enabled 显式启用 IntelliSense。
除了整体优化外,本版本中此功能的更新如下
copilot和azdCLI 现在提供补全功能- 插件 API 已接近完成
- Git 提交补全显示提交信息

整合了 shell 集成超时设置
我们现在拥有一个统一的可配置设置 terminal.integrated.shellIntegration.timeout ,它控制 VS Code 在终端执行命令(包括通过 executeCommand API 和 Copilot 终端工具触发的命令)之前,等待 shell 集成准备就绪的时长。
chat.tools.terminal.shellIntegrationTimeout 已被弃用,转而使用此整合设置。
认证
管理插件帐户首选项的可发现性
管理插件帐户首选项命令现在更易于发现。除了在命令面板和插件上下文菜单中可用外,它现在也出现在帐户菜单中,与管理语言模型访问并列。这使得查找和配置哪些帐户可以被插件访问变得更加容易。

classic Microsoft 身份验证的最后一个版本 - 如果遇到问题,请使用 msal-no-broker
我们将移除 microsoft-authentication.implementation 的 classic 选项。这意味着 VS Code 1.106 版本将是最后一个提供 classic 选项的版本。
microsoft-authentication.implementation 设置旨在让用户在遇到问题时,可以选择不使用 Microsoft 帐户的本机中介身份验证。该设置的值包括:
msal- 在可用时使用带中介身份验证的 MSAL(默认)msal-no-broker- 使用不带中介身份验证的 MSAL(近期引入)classic- 使用不带 MSAL 的经典 Microsoft 身份验证流程
我们将删除 classic 选项,因为其使用率非常低,且 msal 选项的大多数问题都源于中介机制,这可以通过 msal-no-broker 来解决。
Microsoft 身份验证的设备代码流
Microsoft 身份验证现在支持非中介场景下的设备代码流,这对于远程开发环境尤其有用。当其他身份验证方法失败时,VS Code 会自动回退到设备代码流,并显示一个代码,你可以在另一台设备上输入该代码以完成身份验证。
管理帐户命令
直接从命令面板使用 帐户: 管理帐户 命令来管理你的身份验证帐户。当帐户菜单被隐藏或不易访问时,此命令提供了访问帐户管理功能的途径。

运行 管理帐户 命令时,你会看到一个快速选择菜单,列出所有已激活的帐户。你可以选择一个帐户来查看可用操作,包括:
- 管理受信任插件 - 控制哪些插件可以访问所选帐户
- 管理受信任的 MCP 服务器 - 为支持此功能的帐户管理 MCP 服务器访问权限
- 退出登录 - 退出当前帐户
语言
Python
Python Environments 插件:支持 python.poetryPath 设置
Python Environments 插件现在遵守现有的 python.poetryPath 用户设置。这允许你指定要使用的 Poetry 可执行文件路径。在管理 Poetry 环境时,插件将搜索并选择所提供的路径。
Python Environments 插件:改进了 venv 创建:检测 dev-requirements.txt
创建新的虚拟环境时,该插件现在会自动检测 requirements.txt 和 dev-requirements.txt 文件并自动安装依赖项。
将 Copilot 悬停摘要添加为文档字符串
你现在可以使用 Copilot 悬停摘要中新的 添加为文档字符串 命令,直接将 AI 生成的文档作为文档字符串添加到代码中。当你为函数或类生成摘要时,导航到符号定义并将鼠标悬停其上,即可访问 添加为文档字符串 命令,它会将摘要插入到光标下方,并格式化为正确的文档字符串。
这简化了代码记录过程,让你无需重新输入即可快速提升代码的可读性和可维护性。
本地化的 Copilot 悬停摘要
Pylance 内部的 GitHub Copilot 悬停摘要现在会遵守你在 VS Code 中设置的显示语言。当你调用 AI 生成的摘要时,你将获得与编辑器语言设置一致的文本,从而更容易理解生成的文档。

转换通配符导入代码操作
在 Python 中,通配符导入 (from module import *) 通常不被推荐,因为它们会扰乱命名空间并导致名称来源不明确,从而降低代码清晰度和可维护性。Pylance 现在通过一项新的代码操作,帮助你清理仍然依赖 from module import * 的模块。它将通配符替换为显式符号,同时保留别名并将导入保持为单一语句。要尝试此功能,请单击通配符导入所在的行,然后按 Ctrl+.(macOS 上为 Cmd+.),选择 转换为显式导入 代码操作。

dotenv
现在内置了对 dotenv 文件 (.env) 的基本支持,这些文件通常用于为应用程序定义环境变量。
对扩展的贡献
GitHub 拉取请求
GitHub Pull Requests 扩展取得了更多进展,该扩展使您能够处理、创建和管理拉取请求和问题。新功能包括:
- AI 生成的 PR 描述(通过 githubPullRequests.pullRequestDescription )如果存在仓库 PR 模板,将会遵守该模板。
- Pull Requests 视图中的草稿现在以斜体渲染,不再带有
[DRAFT]前缀。 - 可以从 URL 打开拉取请求,例如:
vscode-insiders://github.vscode-pull-request-github/checkout-pull-request?uri=https://github.com/microsoft/vscode-css-languageservice/pull/460
查看插件 0.122.0 版本更新日志,了解此版本中的所有内容。
预览功能
语言模型编辑器
一个新的 语言模型 编辑器提供了一个集中位置,用于查看和管理 GitHub Copilot Chat 的所有可用语言模型。你可以从聊天模型选择器中打开它,或通过命令 聊天: 管理语言模型 打开。
注意: 此功能仅在 VS Code Insiders 中可用。

该编辑器显示:
- 按提供程序组织的所有可用模型
- 模型能力(工具、视觉、代理)
- 上下文大小和乘数信息
- 模型可见性状态
你可以使用以下方式搜索和过滤模型:
- 带高亮显示的文本搜索
- 提供程序过滤器:
@provider:"OpenAI" - 能力过滤器:
@capability:tools、@capability:vision、@capability:agent - 可见性过滤器:
@visible:true/false
将鼠标悬停在模型名称或上下文大小上,可以查看详细信息,包括模型 ID、版本、状态和 Token 分布。
管理模型可见性
通过切换每个模型旁边的眼睛图标来控制哪些模型出现在聊天模型选择器中。当模型可见时,它会出现在你使用 GitHub Copilot Chat 时的模型选择器下拉菜单中,以便选择。隐藏的模型将保留在“语言模型”编辑器中,但不会出现在模型选择器中,这有助于将模型选择聚焦于你最常用的模型。

当你拥有多个模型访问权限,并希望通过仅在选择器中显示首选模型来简化工作流时,此功能特别有用。
从已安装的提供程序中添加模型
使用 添加模型... 按钮配置并添加已安装的语言模型提供程序中的模型。选择此按钮后,你将看到一个所有已安装模型提供程序的下拉列表,例如 Copilot、Anthropic、Azure、Google、Groq、Ollama、OpenAI 等。从列表中选择一个提供程序进行配置,并开始在 GitHub Copilot Chat 中使用其模型。

这使得激活你已安装的其他模型提供程序变得容易,无需离开“语言模型”编辑器。通过选择提供程序行上的齿轮图标即可访问提供程序管理。
扩展开发
身份验证会话中的 ID 令牌
AuthenticationSession 接口现在包含一个可选的 idToken 属性。这允许身份验证提供程序除了访问令牌外还可以返回 ID 令牌,这对于需要用户身份信息的场景特别有用。Microsoft 身份验证提供程序会返回此字段,而 GitHub 等其他提供程序可能不会。
ID 令牌包含有关已验证用户的信息声明,并由身份提供程序签名,因此可用于验证用户身份。有关 ID 令牌和访问令牌之间差异的更多信息,请参阅 https://oauth.ac.cn/id-tokens-vs-access-tokens/。
export interface AuthenticationSession {
/**
* The ID token.
*/
readonly idToken?: string;
}
Git 插件 getRepositoryWorkspace API
内置的 Git 插件提供了一个新 API,用于获取已知与 git 仓库远程相关联的文件夹。其工作原理是在用户打开带有 git 远程的文件夹时,缓存仓库远程到文件夹的映射。
辅助侧边栏中的视图容器
插件作者现在可以使用新的 secondarySidebar 贡献点,在辅助侧边栏中注册视图容器。这允许插件将其自定义视图放置在辅助侧边栏中(与聊天等内置视图并列),并与 VS Code 的双侧边栏布局提供更好的集成。
{
"contributes": {
"viewsContainers": {
"secondarySidebar": [
{
"id": "myExtensionViews",
"title": "My Extension",
"icon": "$(extensions)"
}
]
},
"views": {
"myExtensionViews": [
{
"id": "myCustomView",
"name": "Custom View",
"when": "true"
}
]
}
}
}
提议的 API
Quick Pick 和 Quick Input 改进
Quick Pick 和 Quick Input API 包含多项新功能,为插件开发者创建交互式用户界面提供了更多灵活性。
提议的 API:切换按钮支持
插件可以通过 QuickInput 上的 toggles 属性将切换按钮添加到 Quick Pick 和 Quick Input 界面。这实现了诸如输入框区域中的密码可见性切换等场景,允许用户在不离开快速选择界面的情况下与控件交互。
欢迎对该 API 提议发表评论和反馈(请参阅 GitHub Issue)。
export enum QuickInputButtonLocation {
...
/**
* The button is rendered at the far end inside the input box.
*/
Input = 3
}
export interface QuickInputButton {
...
/**
* When present, indicates that the button is a toggle button that can be checked or unchecked.
*
* **Note:** This property is currently only applicable to buttons with {@link QuickInputButtonLocation.Input} location.
* It must be set for such buttons, and the state will be updated when the button is toggled.
* It cannot be set for buttons with other location values.
*/
readonly toggle?: { checked: boolean };
}
提议的 API:Quick Pick 提示支持
Quick Pick 支持 prompt 属性,类似于输入框中提供的属性。提示会在输入框下方显示持久性文本,并在用户键入时保持可见,从而提供有用的指导或说明,且不会在用户开始输入文本时消失。
欢迎对该 API 提议发表评论和反馈(请参阅 GitHub Issue)。
export interface QuickPick<T extends QuickPickItem> extends QuickInput {
/**
* Optional text that provides instructions or context to the user.
*
* The prompt is displayed below the input box and above the list of items.
*/
prompt: string | undefined;
}
export interface QuickPickOptions {
/**
* Optional text that provides instructions or context to the user.
*
* The prompt is displayed below the input box and above the list of items.
*/
prompt?: string;
}
提议的 API:Quick Pick 项的文件图标
Quick Pick 项可以通过 QuickPickItem 上的 resourceUri 属性显示特定类型的文件图标。当你提供资源 URI 时,VS Code 会根据资源类型自动派生相应的标签、描述和图标,并匹配当前主题的文件图标集。这在构建文件或文件夹选择界面时特别有用,用户可以根据熟悉的文件类型图标快速识别项目。
欢迎对该 API 提议发表评论和反馈(请参阅 GitHub Issue)。
export interface QuickPickItem {
/**
* A {@link Uri} representing the resource associated with this item.
*
* When set, this property is used to automatically derive several item properties if they are not explicitly provided:
* - **Label**: Derived from the resource's file name when {@link QuickPickItem.label label} is not provided or is empty.
* - **Description**: Derived from the resource's path when {@link QuickPickItem.description description} is not provided or is empty.
* - **Icon**: Derived from the current file icon theme when {@link QuickPickItem.iconPath iconPath} is set to
* {@link ThemeIcon.File} or {@link ThemeIcon.Folder}.
*/
resourceUri?: Uri;
}
MarkdownStrings 中的 GitHub 风格警报 (#209652)
我们通过设置新属性 supportAlertSyntax,添加了对在 MarkdownString 中渲染 GitHub 风格警报语法 的支持。
const markdown = new vscode.MarkdownString();
markdown.supportAlertSyntax = true;
markdown.value = `
> [!NOTE]
> Useful information that users should know, even when skimming content.
> [!TIP]
> Helpful advice for doing things better or more easily.
> [!IMPORTANT]
> Key information users need to know to achieve their goal.
> [!WARNING]
> Urgent info that needs immediate user attention to avoid problems.
> [!CAUTION]
> Advises about risks or negative outcomes of certain actions.
`;
这使得插件能够在 UI 的各个位置(例如注释中)渲染警报。

TreeItem 标签中的 MarkdownString 支持 (#115365)
插件作者现在可以在树视图项标签中使用 MarkdownString,从而支持部分 Markdown 语法,包括 Codicons 和文本格式化。这允许插件创建视觉效果更丰富的树视图。
// Codicons
const itemWithIcon = new vscode.TreeItem({
label: new vscode.MarkdownString('$(star) Starred item', true)
});
// Text formatting (must surround the entire string)
const italicItem = new vscode.TreeItem({
label: new vscode.MarkdownString('_Italic item_')
});
// Formatting and codicons can be combined
const combined = new vscode.TreeItem({
label: new vscode.MarkdownString('_~~**$(check) Done $(star)**~~_', true)
});
上述项的渲染效果如下:
工程
自动化 UX PR 测试探索
我们引入了一种新的自动化工作流,旨在帮助评审者在不手动检出并运行代码的情况下,理解拉取请求中的 UI 变更。通过为包含 UI 变更的拉取请求添加 ~copilot-video-please 标签,自动化流程将启动,该流程会:
- 从 PR 分支构建 VS Code
- 使用 GitHub Copilot CLI 与变更进行交互并在此过程中录制视频——利用 playwright-mcp
- 生成 Playwright 追踪记录以进行详细检查
- 将结果作为评论发布在 PR 上
虽然尚处于早期阶段,但此工作流可以减少代码评审所需的手动工作,特别是对于小的 UI 变更。视频和追踪记录有助于评审者快速验证变更是否按预期工作。目前,视频仅对团队成员可见。
有关此自动化的更多详细信息,请参阅 https://github.com/microsoft/vscode/issues/272529。
macOS 11.0 支持已结束
VS Code 1.106 是支持 macOS 11.0 (macOS Big Sur) 的最后一个版本。有关更多信息,请参阅我们的 FAQ。
值得注意的修复
- vscode#258236 - 为安装插件时使用的请求超时添加设置
- vscode#272945 - 任务未触发
onDidStartTerminalShellExecution - vscode#273372 -
/**在 .gitignore 文件中被自动以*/闭合 - vscode#243584 - pwsh/conpty 上的首次输入被忽略
- vscode#271952 - Copilot “配置指令”快速选择菜单未显示工作区级别的代理指令文件 (copilot-instructions.md, AGENTS.md)
- vscode#274631 - 网络:在 Windows 上加载中间证书颁发机构
感谢
问题跟踪
对我们问题跟踪的贡献
- @RedCMD (RedCMD)
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @albertosantini (Alberto Santini)
- @Accurio (Accurio)
拉取请求
对 vscode 的贡献
- @avarayr (avarayr): 修复:增加 macos tahoe 上的工作台边框半径 PR #270236
- @baptiste0928 (Baptiste Girardeau): 修复:解析合并编辑器中的重命名路径 PR #254677
- @barroit (barroit): 修复 tokenizeLineToHTML() 中的制表位计算 PR #263387
- @Benimautner: 修复:如果输入设备是鼠标,则不应用惯性滚动。 PR #268284
- @danielbayley (Daniel Bayley): 添加
TM_DIRECTORY_BASE代码片段变量 PR #270262 - @dibarbet (David Barbet): 将语义令牌范围刷新通知挂钩到视口贡献 PR #271419
- @dnicolson (Dave Nicolson): 更新激活事件 linter 消息 PR #269156
- @DrSergei (Sergei Druzhkov): 修复反汇编视图 PR #270361
- @gjsjohnmurray (John Murray): 在更多情况下显示“学习如何隐藏 AI 功能” (修复 #268450) PR #268462
- @imbant (imbant): 修复(聊天):修正“文件和文件夹”选择器中的文件图标渲染 PR #255384
- @JeffreyCA: 添加 Azure 开发人员 CLI (azd) 的 Fig spec PR #272348
- @jlelong (Jerome Lelong)
- 使配对颜色着色器忽略 @ifnextchar PR #272329
- 在 LaTeX 中排除括号对末尾的下划线 PR #272758
- @jmg-duarte (José Duarte): 修复 terminal.hoverHighlightBackground 的本地化 PR #264228
- @Mingpan: 复制内联差异中已删除块的选择 PR #267991
- @obrobrio2000 (Giovanni Magliocchetti)
- 为测试覆盖率添加“跳转到下一个/上一个未覆盖行”导航 PR #269505
- html:添加禁用结束标签建议的设置 PR #269605
- @ohah (ohah): 修复:file-found 徽章垂直对齐 (#_235159) PR #238757
- @rajniszp (Piotr Rajnisz): i18n:添加 monaco-editor 缺失的本地化 PR #268038
- @RedCMD (RedCMD): 修复 \n 上的软换行 PR #258407
- @remcohaszing (Remco Haszing): 添加 dotenv 支持 PR #273074
- @ritesh006 (Ritesh Kudkelwar): feat(ts-codeLens): 为重写方法显示“实现” CodeLens #263749 PR #264546
- @Selva-Ganesh-M (Selva Ganesh M): fix(editor)(#_261780): 将 UPPER_CASE 转换为 PascalCase PR #262959
- @SimonSiefke (Simon Siefke)
- 修复:gettingStarted 中的内存泄漏 PR #216876
- 修复:输出视图中的内存泄漏 PR #221605
- 修复:笔记本文本模型中的内存泄漏 PR #265013
- 修复:InlayHints 中的内存泄漏 PR #265185
- 修复:聊天会话跟踪器中的内存泄漏 PR #269027
- 修复:getTerminalActionBarArgs 中的内存泄漏 PR #269516
- 修复:粘性滚动中的内存泄漏 PR #271102
- 修复:聊天欢迎界面中的内存泄漏 PR #271121
- @sinsincp: 修复代码工作区关联的 AppUserModelID PR #272753
- @Skn0tt (Simon Knott): 测试 - 未完成的结果应标记为已跳过 PR #273742
- @subin-chella (subin): 修复 bug #209943 PR #216662
- @tamuratak (Takashi Tamura)
- 聊天:始终应用提示文件并自动附加指令。修复 #271624 PR #272020
- 修复(聊天):防止 undefined customModes.custom。修复 #272223 和 #272236 PR #272263
- @yavanosta (Dmitry Guketlev): 修复 InlineEditsGutterIndicator 中的内存泄漏 (#_273549) PR #273550
对 vscode-copilot-chat 的贡献
- @24anisha: 默认工具的内置工具集 PR #1139
- @AbdelrahmanAbouelenin (ababouelenin): 自定义 vsc 模型提示 PR #1504
- @devm33 (Devraj Mehta): 更新 @vscode/chat-lib 包中的仓库 URL PR #1255
- @DGideas (Wanlin Wang 王万霖): 改进 Copilot Chat 在 404 时的错误处理 PR #1073
- @IanMatthewHuff (Ian Huff): 修复内部 git 仓库遥测收集的问题 PR #1408
- @joelverhagen (Joel Verhagen): 在辅助 NuGet MCP 安装流程中允许最新的 server.json 架构 PR #1268
- @phawrylak (Paweł Hawrylak): 将安全敏感文件扩展名添加到工作区索引排除列表 PR #1157
对 vscode-html-languageservice 的贡献
- @obrobrio2000 (Giovanni Magliocchetti): 添加禁用结束标签建议的设置 PR #219
对 vscode-json-languageservice 的贡献
- @Legend-Master (Tony): 正确转义纯文本描述悬停 PR #283
对 vscode-languageserver-node 的贡献
- @dibarbet (David Barbet): 在文档关闭时清除工作区拉取状态,以防止陈旧的诊断 PR #1674
对 vscode-pull-request-github 的贡献
- @bendrucker (Ben Drucker): 在提示中启用所有 LLM 工具(代理模式) PR #6956
- @gerardbalaoro (Gerard Balaoro): 使分支列表超时可配置 (#_2840) PR #7927
- @wankun-tcj: 修复拉取请求树视图中的头像显示问题 PR #7851
对 vscode-test-cli 的贡献
- @bwateratmsft (Brandon Waterloo [MSFT]): 在发布前提升版本号 PR #86
对 debug-adapter-protocol 的贡献
- @rsubtil (Ricardo Subtil): 将 Godot 添加到 DAP 适配器列表 PR #568
对 language-server-protocol 的贡献
- @kristoff-it (Loris Cro): 更新 servers.md PR #2192
对 monaco-editor 的贡献
- @flofriday (Florian Freitag): 修复 Kotlin 数字字面量 PR #4973
对 node-pty 的贡献
- @devm33 (Devraj Mehta): 直接从预构建目录加载原生插件 PR #809
对 python-environment-tools 的贡献
- @VictorColomb (Victor Colomb): fix(poetry): pep503 规范化包名称 PR #242
我们非常感谢大家在新功能准备就绪后立即进行试用,请经常回来查看并了解新功能。
如果您想阅读以前 VS Code 版本的发行说明,请访问 code.visualstudio.com 上的更新页面。