本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

2025年10月(版本1.106)

发布日期:2025年11月12日

更新 1.106.1:更新解决了这些问题

更新 1.106.2:此更新解决了这些问题

更新 1.106.3:此更新解决了这些问题

下载: Windows: x64 Arm64 | Mac: 通用 Intel | Linux: deb rpm tarball Arm snap


欢迎来到2025年10月发布的Visual Studio Code。

图表展示了2025年10月发布的关键亮点:Agent HQ、安全与信任,以及出色的编辑体验。

此次发布在三个关键领域带来了重要更新:

  • Agent HQ 是您启动、监控和回顾本地或远程代理会话的单一视图,无论这些会话是通过Copilot还是OpenAI Codex启动的
  • 安全与信任帮助您保持控制并自信地将更多任务委托给AI
  • 出色的编辑体验 使您的日常编码更加顺畅和愉快

观看我们的VS Code 1.106 发布亮点视频,听我们的工程师介绍这些功能!

快乐编码!


如果您想在线阅读这些发行说明,请访问 更新 页面 code.visualstudio.com.

内部人士:想尽快尝试新功能吗?
您可以下载夜间内部人士版本,尽快体验最新更新。
下载内部人士版本

Agent

代理会议视图

设置

聊天.代理会话查看位置
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

当你将任务交给各种编码代理时,拥有对你所有活动会话的清晰概览是很重要的。Agent Sessions 视图提供了一个集中位置来管理你的活动聊天会话。这包括 VS Code 中的本地会话和在其他环境(如 Copilot 编码代理GitHub Copilot CLIOpenAI 的 Codex)中由后台代理创建的会话。Agent Sessions 视图现在默认启用,可以通过

聊天.代理会话查看位置
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。

默认情况下,Agent Sessions 视图按来源列出所有您的活动聊天会话。该视图分为两个部分,一部分是 VS Code 中的本地聊天会话,另一部分是后台代理会话:

主侧栏中代理会话视图的截图,显示了本地聊天会话视图和编码代理,如 Copilot 编码代理、Copilot CLI 和 Codex。

如果您希望有一个所有提供者统一的会话视图,您可以启用单视图选项为

聊天.代理会话查看位置
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。此选项还将代理会话视图移动到次要侧栏中聊天视图旁边,使在聊天和管理会话之间切换更加容易。

请注意,目前综合视图中并非所有功能都可用。我们正在积极努力,使该视图在不久的将来成为默认视图。

现在,Agent Sessions视图也支持搜索 (⌥⌘F (Windows, Linux Ctrl+Alt+F)),帮助您轻松在列表中找到您的会话。

了解更多关于 VS Code 文档中的 Agent Sessions 视图

计划代理

一个新的计划代理在编写任何代码之前,帮助开发人员逐步分解复杂的任务。选择 计划 从聊天视图的代理下拉菜单中开始。在处理多步骤实现时,VS Code 会提示您提出澄清问题,并生成详细的实施计划,供您首先批准,以确保捕获所有要求和上下文。

我们建议在实施之前花时间对计划进行迭代。您可以多次优化需求、调整范围并解决未决问题,以建立坚实的基础。一旦您批准计划,Copilot将在VS Code本地实施或通过云代理进行实施,为您提供更大的控制权和对开发过程的可见性。这有助于您早期发现漏洞或缺失的决策,减少重做并提高代码质量。

您还可以根据团队的具体工作流程和工具创建自己的自定义计划代理。使用配置自定义代理菜单将内置计划代理复制为起点,然后自定义规划样式、工具和提示以匹配您的开发过程。了解更多关于VS Code聊天中的规划创建自定义代理的信息。

云代理

在此次发布中,我们对编辑器中的云代理会话进行了许多更新。

我们将 Copilot 编码代理集成从 GitHub Pull Request 扩展迁移到 Copilot Chat 扩展,以在 VS Code 中提供更原生的云代理体验。此集成为 VS Code 和 GitHub Mission Control 之间的更流畅的转换和交互铺平了道路,例如,直接从浏览器中的 Agent Sessions 视图打开云代理会话,反之亦然。

命令行代理

在此次发布中,我们还推出了与Copilot CLI的初步集成。您可以在聊天编辑器或集成终端中创建新的并恢复现有的 CLI 代理会话。

命令行界面下拉菜单的截图,显示了创建新命令行界面代理会话或恢复现有会话的选项。

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

截图显示了一个 CLI 代理编辑器和一个带有 Copilot CLI 会话的集成终端。

代理委托

我们继续改进将任务委托给云代理的体验。

当您使用云按钮将任务委托给聊天面板中的代理时,您将被提供一组可用的代理供您委托。您还可以通过 CLI 从 Copilot 编码代理那里委托任务,通过/委托在 CLI 编辑器或终端实例中输入命令。

截图显示从 CLI 代理编辑器进行委托。

CLI 代理编辑跟踪

聊天编辑会话现在可以跟踪由后台代理(如 Copilot CLI)所做的编辑。当您从代理会话视图创建会话时,您可以看到通过内联编辑片段和工作集视图跟踪的编辑,这使得更容易了解代理对您的工作区进行了哪些更改。

聊天模式重命名为自定义代理

聊天模式已重命名为 VS Code 中的自定义代理,以更好地与其他环境中的术语保持一致。

代理选择器控件的屏幕截图。

当您创建自定义代理时,定义文件现在位于.github/agents在你的工作区。这些文件可以使用.代理.md后缀,也可以用作 GitHub Copilot 云代理和 CLI 代理。

使用 聊天:新建自定义代理... 来创建新的代理,并 聊天:配置自定义代理... 来管理它们。

如果您有现有的自定义聊天模式( chatmode.md文件在.github/chatmodes),它们继续工作,并且会自动被视为自定义代理。当您在编辑器中打开聊天代理文件时,第一行会出现一个信息标记,提供快速修复以将其迁移到自定义代理文件。

自定义代理元数据

定制代理.agent.md文件现在接受额外的目标前言属性用于描述代理在不同环境中应该如何运行:

  • 目标:vscode: 优化了本地聊天的智能体并解锁名字描述参数提示模型工具,和移交属性。任何安装在 VS Code 中的工具都可以使用。
  • 目标: github-copilot: 为 Copilot 云代理或 GitHub CLI 准备代理,并支持名字描述工具mcp-服务器,和目标工具可以编辑搜索定制代理以及来自MCP服务器的工具

所有智能体都可以在所有环境中运行。每个环境都会忽略未知的属性和工具。

  • 名字: 允许您在不重命名文件的情况下覆盖代理标签。
  • 参数提示在聊天输入中提供表面指导,以便队友知道如何提示智能体。
  • 移交: 线路引导的过渡到其他代理,让您链式执行多步骤工作流程。

代理文件编辑器提供验证、代码补全、悬停和代码操作。

在编辑自定义代理文件时的验证GIF。

了解更多关于自定义代理和代理转换的信息,请参阅我们的文档。

代码编辑

在 diff 编辑器中已删除的代码现在可以选中

之前,当你在diff编辑器中删除代码并查看更改时,无法复制那些已删除的行。在此次发布中,当你使用原生diff视图时,可以从已删除的行中选择并复制文本。

内联建议是开源的

这次发布继续我们让 VS Code 成为开源 AI 编辑器的旅程。在开源 GitHub Copilot Chat 的第一个里程碑之后,我们现在通过将内联建议合并到 vscode-copilot-chat 仓库中,开源了内联建议。

作为这一里程碑的一部分,我们将GitHub Copilot扩展和GitHub Copilot Chat扩展合并为一个扩展体验。Chat扩展现在提供所有内联建议,同时保持所有聊天和代理功能,提供您熟悉的智能代码建议。此更改应是透明的,您在输入时将继续获得相同的代码建议。如果您遇到任何问题,可以使用临时回滚。

chat.extensionUnification.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。

GitHub Copilot扩展将在2026年初停止支持。了解更多关于这个里程碑的信息,并在我们的博客文章中探索开源代码。

从排水沟中静音内联建议

您现在可以直接从 gutter 图标中暂停内联建议。当您悬停在 gutter 图标上时,会出现一个控制菜单,带有暂停 选项。选择该选项并选择暂停建议的时间。

截图显示了在内联建议中下水道上下文菜单中的“稍后提醒”按钮。

转到线路改进

在这一版本中,我们对转到行命令进行了多项改进(⌃G(Windows, Linux Ctrl+G),提高了在文件内导航的能力。

转到行命令现在支持通过使用输入:::语法。这在工具报告特定字符偏移处的错误时很有用,例如“在位置599处出错”。

要导航到字符偏移,请输入输入::: 跟随 行号 输入框中的字符编号。例如:

  • ::599- 转到文件中的字符599
  • ::-100- 向文件末尾导航100个字符

使用输入框中的切换按钮在基于1偏移(默认)和基于0偏移之间进行切换。

此外,转到行命令也更优雅地处理超出范围的值,并使导航到文件和行的开头或结尾更加容易:

  • 行号:输入的行号大于文件行数时,导航到最后一行。
  • 列号:使用负列号从行尾导航。例如,:12:-1将你定位到第12行的最后一个字符。输入的列号大于该行长度时,将定位到该行的末尾。

编辑体验

焕然一新的象征体系

在此次发布中,codicon图标集进行了改版。新的图标经过了弧线的优化、新的修饰符设计以及更准确的隐喻,使其感觉更加现代、友好和易读。

更新的产品图标截图,显示了更现代的外观和更高的可读性。

Linux 政策支持

我们已经引入了在 Linux 系统上使用 JSON 文件管理 VS Code 策略的支持。这使管理员能够在 Linux 机器上的所有用户之间强制执行特定的设置和配置。

欲了解更多信息,请参阅 Linux 上的 JSON 策略.

在多文件差异编辑器中导航更改

就像你可以在单文件的差异编辑器中导航到下一个或上一个更改一样,现在你可以在多文件差异编辑器中跨文件进行导航。使用键绑定或上下箭头键来查看你的文件更改。

复制诊断悬停文本

诊断悬停(错误、警告、信息和提示)现在出现了一个复制按钮,使复制错误消息更加容易。当您悬停在诊断标记上时,将鼠标移动到悬停消息上,以在右上角显示复制按钮。

诊断悬停时悬停显示的截图,在右上角显示了一个复制按钮。

不区分大小写的命令过滤

命令面板现在在搜索命令时会忽略字符的重音符号,使得无论您的键盘布局或语言偏好如何,都可以更容易地找到所需内容。例如,当搜索包含单词的命令时生成(法语为生成), 类型生成没有重音和匹配命令在结果中出现。

在使用不同的键盘布局或在查找命令时拼错时,这很有帮助。过滤基于Unicode规范形式D,支持所有Unicode语言。

高级 VS Code 设置

VS Code 现在支持高级设置的概念。这些设置旨在配置特定场景,适用于需要对其环境进行粒度控制的高级用户。默认情况下,高级设置在设置编辑器中是隐藏的,这样可以保持界面简洁,但在需要时可以提供这些强大的选项。

要查看和配置高级设置,请选择 高级 从设置编辑器的过滤器下拉菜单中,或输入 @标签:高级在搜索框中:

截图显示应用了高级过滤器的设置编辑器,显示带有高级标签徽章的高级设置

当您通过其确切名称搜索特定设置或使用@id:筛选,高级设置在结果中出现,无需应用高级筛选器。这确保您始终可以找到所需的设置。

高级设置可以与其他过滤器(如)组合使用@修改@功能:为了帮助您找到所需的一切。例如,@标签:高级 @功能:终端仅显示与终端相关的高级设置。

注意: 扩展作者可以通过添加 来标记他们的设置为高级设置高级标签到设置配置。

聊天

基于嵌入的工具选择

在此次发布中,我们显著改进了用户在聊天中启用超过100个工具时的工具过滤和分组方式。您应该会看到“正在优化工具选择...”的加载状态出现得更少,持续时间也更短。我们还改进了工具选择,降低了代理混淆的可能性,以确保选择正确的工具。

工具批准和信任

批准后外部数据

代理工具现在支持批准后获取外部数据。这通过让你在数据被用于聊天会话之前进行审查,来帮助保护你免受潜在的提示注入攻击。

批准后功能已启用#获取工具和模型上下文协议(MCP)工具声明打开世界提示输入:.

信任所有服务器或扩展工具

您现在可以通过允许按钮下拉菜单在源级别信任MCP服务器和扩展工具。这意味着您可以一次性批准来自特定MCP服务器或扩展的所有工具,而不是必须单独批准每个工具。

我们还更新了聊天:管理工具审批命令体验,以便您可以管理工具的预审批和后审批。

管理工具批准命令体验的截图,使工具能够跳过批准和跳过内容审核。

工具自动批准状态已移动

自动批准状态已从聊天视图中移至工具调用状态/勾号图标:

悬停工具的复选图标截图将显示为什么它被自动批准

终端工具

自动批准解析器改进

之前,终端工具中的子命令检测使用了在某些字符串(如 )上进行简单分割的朴素方法。输入:|&&这在很多方面都失败了,但比较重要的问题是当管道在字符串中使用时,例如回显 "a|b|c",这将检测子命令回声输入:b“c”另一个重要的方面是,由于我们无法可靠地提取子命令,我们完全禁止了括号对、花括号对和反引号,以更安全地防止意外执行。

这个版本,我们集成了一个解析器到功能中,并使用PowerShell 语法bash 语法来处理其他所有内容*。因此,即使是非常复杂的案例也应该能正确提取:

在 echo 调用中检测到 "$()" 的截图。

* 请注意,这意味着当 shell 语法与 bash 不同时,它可能会捕捉不到子命令,例如 ;在 zsh 中

文件写入/重定向检测(实验性)

多亏了新的解析器,我们能够相当可靠地提取通过重定向写入的文件。有一个新的实验性设置

chat.tools.terminal.阻止检测到的文件写入
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
这将有条件地阻止自动批准。

截图显示,出于默认设置,写入工作区外将阻止自动批准。

禁用默认自动批准规则(实验性)

新的实验设置

chat.tools.terminal.ignoreDefaultAutoApproveRules
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
允许禁用默认规则(允许和拒绝规则)。如果您希望在不需要查找默认规则的情况下拥有更多控制权,这很有用。

特定 shell 提示和命令重写

终端工具现在对 PowerShell、bash、zsh 和 fish 有特定的 shell 描述。这应该使代理建议的命令更加可靠,不太可能失败,尤其是对 PowerShell。

除此之外,对于 PowerShell 我们也进行了重写&&;自那以后&& 在 Windows PowerShell (v5) 中不支持链式操作符。请注意,直到 vscode#274548 被处理之前,这也会暂时发生在 PowerShell 7 中。

将终端命令附加到聊天

您现在可以将终端命令附加到聊天中作为上下文,通过命令装饰的上下文菜单。附加内容共享命令行、捕获的输出和退出代码,以便代理准确了解发生了什么。这适用于由 shell 集成跟踪的任何命令,使您无需复制和粘贴文本即可轻松进行故障排除升级。

在聊天中查看终端输出(实验性)

新的

chat.tools.terminal输出位置
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置控制输出显示的位置。默认值防止终端避免面板混乱。

每个聊天终端调用现在在进度元素上显示两个操作:

  • 显示终端 显示并聚焦隐藏的会话,并且通过丰富的 shell 集成,直接滚动到相关的命令。即使没有基本的或没有 shell 集成,操作仍然会聚焦正确的终端标签。
  • 显示输出 在聊天视图中内联显示终端的最终输出。当命令以非零代码退出时,输出视图会自动扩展。

npm i 失败时,输出会自动扩展。终端会通过 显示终端 内联操作显示。

发现隐藏聊天终端(实验性)

设置(聊天.工具.终端.输出位置):无,一个新的X个隐藏终端按钮会在至少有一个隐藏聊天终端时出现在终端标签视图中。它打开一个快速选择器,列出每个聊天终端及其聊天会话,以便您可以立即集中正确的进程。同样,您可以在查看隐藏聊天终端的终端溢出菜单下使用相同的选择器,并且在所有聊天终端再次可见时消失。

代理运行ls -la成功,因此输出被折叠。隐藏终端操作从标签视图中进行,终端被选择、显示并滚动以突出显示命令。

将对话保存为提示

您现在可以将聊天对话保存为可重复使用的提示/保存提示命令。当你调用/保存提示在活跃的聊天会话中,VS Code 生成一个包含基于您对话的通用提示的提示文件。编辑器显示一个蓝色按钮,允许您将此提示保存到有效位置,既可以是用户级别也可以是工作区级别。

编辑器中保存提示按钮的截图。

此功能替换了之前的/保存 命令并提供了一个更流畅的工作流程来捕获和共享有用的对话模式。生成的提示可以轻松地在未来的聊天会话中重复使用或与您的团队共享。了解更多关于 自定义提示文件的信息。

编辑欢迎提示

现在,您可以在聊天欢迎视图中右键单击建议的提示来访问其他操作。当您右键单击一个提示(或按Shift+F10)时,会出现一个上下文菜单,带有编辑提示文件选项,可直接在编辑器中打开相应的提示文件。

编辑提示文件适用于具有相关文件的提示,包括用户定义的提示和通过项目特定提示配置的提示

聊天.提示文件推荐
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。

上下文菜单的截图,用于建议提示。

了解更多关于自定义提示文件的信息。

自动打开编辑的文件

设置

chat.自动打开已编辑的文件
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

我们将代理的默认行为更改为不再自动在编辑器中打开编辑的文件。如果您喜欢以前的行为,可以启用该设置

无障碍.打开聊天编辑文件
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
输入:.

推理(实验性)

设置

chat.agent.thinkingStyle
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
chat.agent.thinking.collapsedTools
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

最后迭代,我们添加了

chat.agent.thinkingStyle
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置已启用在聊天中显示思考代币。现在在更多模型中可用!此版本发布后,GPT-5-Codex、GPT-5、GPT-5 mini 和 Gemini 2.5 Pro 支持此功能。

chat.agent.thinkingStyle
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
调整为三种更常见的风格,并且固定滚动默认显示最新的思维链。

额外的设置,

chat.agent.thinking.collapsedTools
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
,将工具调用添加到可折叠的思考用户界面中。

截图显示在聊天中显示推理代币,并与工具调用和推理输出交错。这是与相应的思考设置相对应的用户界面。

内联聊天 v2(预览)

设置

立式聊天启用V2
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

我们已经加大了努力来现代化内联聊天。它旨在

  • 单一提示
  • 单个文件
  • 仅用于代码更改

这使整体体验更加轻松,并允许简化用户界面。对于它无法处理的任务,您将自动升级到聊天视图。

聊天视图用户体验改进

我们对聊天视图的某些部分进行了调整,使其使用起来更加愉快:

  • 创建新聊天的操作现在是一个下拉菜单,提供在编辑器或新Windows中创建聊天会话的选项。
  • 工具和MCP服务器操作已移至模型选择器旁边。
  • 配置下拉菜单已清理

创建新聊天下拉菜单的操作截图。

现在也可以在聊天视图中通过右键单击数学表达式来复制数学源代码。

多路转换器

MCP服务器访问您的组织

设置

chat.mcp.gallery.serviceUrl
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
组织,
chat.mcp.access
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
组织

VS Code 现在支持通过 GitHub 组织策略配置的 MCP 注册表。这使组织能够设置自定义的 MCP 注册表,并控制可以安装和启动哪些 MCP 服务器。

当在您组织的策略中配置了MCP注册端点时,VS Code将:

  • 提供从配置的注册表中浏览和安装MCP服务器
  • 启用访问限制时,仅限制启动注册表中可用的MCP服务器

当您的组织配置了这些策略时,

chat.mcp.gallery.serviceUrl
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
ORG 设置指定 MCP 注册表端点 URL,和
chat.mcp.access
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
ORG
设置控制是否仅限制访问该注册表中的服务器。这些设置将在设置编辑器中标记为“(由组织管理)”:

截图显示由组织策略管理的MCP设置,包括画廊服务URL和访问控制设置

要了解更多关于为您的组织或企业配置MCP服务器访问的信息,请参阅配置MCP服务器访问.

安装MCP服务器到工作区配置

在安装MCP服务器时,您现在可以选择是全局安装还是安装到工作区配置。在扩展视图中右键单击MCP服务器,并从上下文菜单中选择安装(工作区),或者直接在MCP服务器编辑器中使用安装(工作区)操作。这将把MCP服务器添加到.vscode/mcp.json在你当前的工作区中保存文件,使与你的团队分享MCP服务器更加容易。

截图显示了MCP服务器的上下文菜单,其中“安装(工作区)”选项被突出显示。

身份验证:客户端ID元数据文件认证流程

对远程MCP的认证支持现在支持客户端ID元数据文档(CIMD)认证流程,这是MCP中OAuth的未来标准。此流程使通过动态客户端注册(DCR)进行的认证更加安全和可扩展,因为现在授权服务器不必为每个客户端担心分配客户端ID。

当连接到一个使用支持CIMD的授权服务器的MCP服务器时,VS Code会自动使用该流程通过DCR。

要了解更多关于CIMD的信息,请查看oauth.net上的资源

认证:WWW-Authenticate范围升级

远程MCP的认证支持现在支持通过动态作用域提升WWW-Authenticate 用于远程MCP服务器的标头。这在 OAuth 2.0规范 中有所说明。这允许MCP服务器在需要时请求额外的权限,而不是一开始就要求所有范围。例如,连接到服务器可能需要一组最小的范围,但特定工具调用仅在必要时才请求更广泛的权限。这通过遵循最小权限原则提供了更好的安全性。

这目前在MCP规范的最新草案中有所提及,预计很快就会定稿。

无障碍

默认情况下,语音超时功能已禁用

配置

无障碍语音语音超时
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
已经改变为0默认情况下。这意味着,语音会话不再在延迟一段时间后自动结束(例如,如果您暂停,聊天请求不会自动触发)。我们认为这是更好的默认体验,但您可以随时恢复以前的默认设置(2500)。

聊天输入改进

聊天输入现在以更清晰的顺序宣布活动代理和模型,这样屏幕阅读器用户可以首先听到最相关的上下文。聊天无障碍帮助还指出,您可以按删除键以删除附加的上下文项目,使附件管理完全可以通过键盘进行操作。

笔记本电脑

笔记本现在支持在单元格之间搜索。使用键绑定 (⌘G (Windows, Linux F3)⇧⌘G (Windows, Linux Shift+F3)) 来导航到下一个和上一个匹配项,就像在编辑器中一样。

源代码管理

在git提交信息中折叠支持

设置

git.详细提交
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
git.使用编辑器作为提交输入
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

在编辑器中编写git提交信息时,现在可以折叠提交信息的段落以保持组织有序。要使用此功能,请启用

git.详细提交
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
git.使用编辑器作为提交输入
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。

截图显示在 gutter 中折叠节点,并且在编辑器中有一个部分折叠的提交信息。

图表入/出更改

设置

scm.graph.显示入站更改
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
scm.graph.showOutgoingChanges
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

这个里程碑,我们增加了在源代码控制图视图中轻松查看入站和出站更改的功能。对于有入站或出站更改的活动分支,图表会显示一个“入站更改”和“出站更改”节点。选择每个节点会显示入站或出站文件的列表。

截图显示源代码控制图视图中入站和出站更改节点。

您可以通过使用来在图形视图中隐藏此信息

scm.graph.显示入站更改
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
scm.graph.showOutgoingChanges
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。

图表比较参考文献

我们在源代码控制图上下文菜单中添加了一个新命令,与...比较,该命令使您能够将图中的历史项与任意分支或标签进行比较。此功能使您能够查看历史项中但在分支或标签中不存在的更改。

在上下文菜单中,有快捷命令,与远程分支比较与合并基比较,分别用于比较历史条目与远程分支和合并基。

仓库选择模式

设置

scm.repositories.selectionMode
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

源代码管理库视图显示工作区中打开的库列表,并用于控制源代码管理更改视图中显示的库。

我们正在扩展“仓库”视图的功能,并为此准备,我们正在引入一个设置,

scm.repositories.selectionMode
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
, 以控制Repositories视图中的选择模式,选择单个仓库或多个仓库。

除了Repositories视图中的新功能,这还允许我们在Graph视图的标题中移除仓库选择器,并在所有源代码控制视图中全局使用仓库选择器。您可以使用设置或Repositories视图的“...”菜单切换选择模式。

截图显示了启用单选模式的Repositories视图和切换选择模式的上下文菜单。

新仓库菜单

用户可以使用scm/仓库将 menu id 添加到新 Source Control Repositories 视图中的内联源控制提供程序行。贡献到"inline"组的命令将内联显示,而所有其他命令将显示在输入:...菜单。

仓库浏览器(实验性)

设置

scm.repositories.explorer
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
scm.repositories.selectionMode
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

我们正在研究增强“存储库”视图,并显示每个存储库的附加信息。要尝试此实验性功能,请设置

scm.repositories.selectionMode
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
scm.repositories.explorer
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
输入:.

在第一版中,我们专注于分支和标签。你可以创建新的分支和标签,查看分支和标签的列表,并对每个分支/标签执行各种操作(例如:切换等)。在接下来的里程碑中,我们将添加更多信息(例如:暂存区、远程等)。请尝试这个实验性功能,并告诉我们你的想法。

截图显示了单个选定仓库的仓库资源管理器,带有分支和标签。

测试

导航未覆盖的行以查看测试覆盖情况

在审查测试覆盖范围时,您现在可以使用新的导航命令轻松导航到未覆盖的行。查看覆盖信息时,编辑器工具栏中提供两个命令:

  • 转到下一个未覆盖的行 - 跳转到下一个未被测试覆盖的行
  • 转到上一行未覆盖的代码 - 跳转到上一行未被测试覆盖的代码

这些命令帮助你快速识别覆盖率空白,并专注于需要更多测试覆盖的区域,从而更容易地提高代码库的整体测试质量。

终端

终端智能感知

终端IntelliSense作为实验/预览功能已经在产品中存在了大约1.5年!这次发布中我们将移除预览标签,并将在稳定版本中逐步向所有用户默认推出。

启用后,终端中输入内容将类似于 PowerShell、bash、zsh 和 fish 编辑器中的 IntelliSense:

在PowerShell中输入“write”并按回车键,将弹出以“write”开头的补全建议。

完成的来源多种多样,例如路径都由核心处理:

一些命令具有高级规范,例如git,它具有拉取分支名称的能力:

在构建此功能时,我们学到的最重要的一点是:没有一种通用的解决方案适用于所有人,因此有许多选项可以调整行为以达到所需的效果:

  • 终端.集成.建议.快速建议
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    - 根据命令行内容自动显示,而不是通过Ctrl+Space手动显示。
  • 终端.集成.建议.在触发字符时建议
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    - 在出现触发字符(如 )后自动显示输入:-输入:/输入:.
  • 终端.集成.建议.按回车键执行
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    - 可选地在 回车 被使用时运行命令(不是 Tab)。
  • 终端.集成.建议.Windows可执行文件扩展名
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    - Windows 上被视为可执行文件的扩展列表。
  • 终端.集成.建议提供者
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    - 提供禁用特定提供者的能力,例如扩展可能会贡献你不想要的补全。
  • 终端.集成.建议.显示状态栏
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    - 在IntelliSense弹出Windows的底部是否显示状态栏。
  • 终端.集成.建议.目录路径
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    - 是否启用$CDPATH整合。
  • 终端.集成.建议.内联建议
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    - 是否与 shell 集成“幽灵文本”以及如何呈现。
  • 终端.集成.建议.上箭头导航历史记录
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    - 在zsh中,是否将上箭头发送到外壳而不是浏览完成,这特别有用,因为您可以过滤并按上箭头以使用该前缀进行历史搜索。
  • 终端.集成.建议.选择模式
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    - 确定 回车Tab 功能的Intellisense弹出Windows聚焦。
  • (新!)
    终端.集成.建议.插入尾随空格
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    - 在接受输入后插入一个尾随空格并重新触发补全。

如果你还没有看到这个功能,请确保你已经启用 shell 集成 并在设置中明确启用 IntelliSense 通过

终端.集成.建议.启用
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
输入:.

除了整体抛光,这次发布中将包含以下功能:

  • Copilot输入:azdCLIs 现在有自动补全功能
  • 扩展 API 接近最终确定
  • Git提交补全显示提交信息

在终端中显示分支名称及其相关提交信息的git提交补全的截图建议详细视图。

综合外壳集成超时设置

我们现在有一个统一的可配置设置,

终端.集成.外壳.集成.超时
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
控制 VS Code 在终端中执行命令之前等待 shell 集成准备好多长时间,包括通过 executeCommand API 和 Copilot 终端工具触发的命令。

chat.tools.terminal.shellIntegrationTimeout
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
已被此合并取代。

认证

管理扩展账户偏好发现性

管理扩展账户偏好命令现在更易发现。除了可以在命令面板和扩展上下文菜单中找到,现在它还出现在账户菜单中,与管理语言模型访问并列。这使得更容易找到和配置扩展可以访问哪些账户。

在“账户”菜单中管理扩展账户设置的截图。

最后版本的经典微软身份验证 - 使用msal-无-broker如果您遇到问题

我们将移除经典选项为

microsoft-认证.实现
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
这意味着 VS Code 版本 1.106 是最后一个包含该功能的版本。经典选项。

microsoft-认证.实现
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
该设置允许用户在遇到问题时选择退出使用微软账户的本地代理身份验证。此设置的值为:

  • 微软身份平台 (MSAL)- 在可用时使用 MSAL 进行委托身份验证(默认)
  • msal-无-broker- 在没有代理身份验证的情况下使用 MSAL(最近引入)
  • 经典- 使用经典的 Microsoft 认证流程,无需 MSAL

我们将移除经典选项,因为其使用率非常低,并且大多数问题与微软身份平台 (MSAL)由于Agent的失误,选项将得到纠正,msal-无-broker输入:.

设备代码流程用于 Microsoft 认证

Microsoft 认证现在支持非代理设备代码流程,特别适用于远程开发环境。当其他认证方法失败时,VS Code 会自动回退到设备代码流程,显示一个代码,您可以在另一台设备上输入以完成认证。

管理账户命令

直接从命令面板中使用Accounts: Manage Accounts命令来管理您的身份验证帐户。此命令在隐藏帐户菜单或不易访问时提供帐户管理功能的访问。

管理账户菜单的截图。

当你运行管理账户命令时,你会看到一个快速选择菜单,列出所有你的活跃账户。你可以选择一个账户来查看可用的操作,包括:

  • 管理受信任扩展 - 控制哪些扩展可以访问所选账户
  • 管理受信任的MCP服务器 - 管理支持此功能的帐户的MCP服务器访问权限
  • 退出 - 退出账户

语言

Python

Python 环境扩展:支持 python.poetryPath 设置

Python 环境扩展现在会遵守现有的python.poetryPath用户设置。这允许您指定要使用的 Poetry 可执行文件。提供的路径将在管理 Poetry 环境时被搜索和选择。

Python 环境扩展:改进的 venv 创建:检测 dev-requirements.txt

在创建新的虚拟环境时,该扩展现在可以检测到 requirements.txt 和 dev-requirements.txt 文件,并自动安装依赖项。

将 Copilot 悬停总结添加为文档字符串

现在,您可以使用新的添加为文档字符串命令,将您的AI生成的文档直接添加到代码中作为文档字符串。当您为函数或类生成摘要时,导航到符号定义并悬停在它上面以访问添加为文档字符串命令,该命令将摘要插入到光标下方,格式化为正确的文档字符串。

这简化了文档编写过程,使您能够快速提高可读性和可维护性,而无需重新键入。

本地化Copilot悬停总结

GitHub Copilot 在 VS Code 中使用 Pylance 现在会尊重你在 VS Code 中的显示语言。当你调用一个 AI 生成的摘要时,你会得到你为编辑器设置的语言的字符串,使你更容易理解生成的文档。

葡萄牙语生成的Copilot悬浮总结的截图。

转换通配符导入 代码操作

在Python中,通常不推荐使用通配符导入(from module import *),因为它们可能会污染你的命名空间,并使名称的来源不明确,降低代码的清晰性和可维护性。 Pylance现在帮助你清理仍然依赖于从模块导入 * 通过一种新的代码操作。它将通配符替换为明确的符号,保留别名并保持导入为单个语句。要尝试一下,你可以点击包含通配符导入的行并按Ctrl+.(或在macOS上按Cmd+.)以选择转换为明确的导入代码操作。

将通配符导入转换为代码操作的截图。

dotenv

内置了对dotenv文件的基本支持 (.env), 这些环境变量通常用于定义应用程序的环境变量。

对扩展的贡献

GitHub 拉取请求

GitHub Pull Requests扩展上取得了更多进展,该扩展使您能够处理、创建和管理拉取请求和问题。新功能包括:

  • AI生成的PR描述(通过
    githubPullRequests. 拉取请求描述
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    ) 将尊重仓库的 PR 模板(如果有)。
  • 在拉取请求视图中,草稿现在以斜体显示,而不是有[草稿]前缀。
  • 拉取请求可以从一个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所有可用语言模型的地方。您可以从聊天模型选择器中打开它,或通过命令Chat: 管理语言模型

注意: 此功能仅在 VS Code Insiders 中可用。

截图显示语言模型编辑器,其中按提供者组织的模型列表。

编辑器显示:

  • 按提供者分类的所有可用模型
  • 模型能力(工具、视觉、代理)
  • 上下文大小和乘数信息
  • 模型可见性状态

您可以使用以下方式搜索和筛选模型:

  • 文本搜索与高亮显示
  • 提供者过滤器:@提供者:"OpenAI"
  • 能力过滤器:@功能:工具@功能:视觉@功能:代理
  • 可见性过滤器:@可见: true/false

将鼠标悬停在模型名称或上下文大小上,以查看包括模型ID、版本、状态和令牌分配在内的详细信息。

管理模型可见性

通过切换每个模型旁边的眼睛图标来控制哪些模型出现在聊天模型选择器中。当一个模型是可见的时,它会在你使用 GitHub Copilot Chat 时出现在模型选择器下拉菜单中,供你选择。隐藏的模型仍然保留在语言模型编辑器中,但不会出现在模型选择器中,帮助你将模型选择集中在你最常使用的模型上。

截图显示了眼睛图标,用于切换模型可见性,并带有显示“在聊天模型选择器中显示”的工具提示。

这在你有多个模型可供访问,并且希望通过仅在选择器中显示你首选的模型来简化工作流程时特别有用。

添加来自已安装提供者的模型

使用 添加模型... 按钮来配置并添加您已经安装的语言模型提供者。当您点击此按钮时,您将看到一个下拉列表,列出所有已安装的模型提供者,例如 Copilot、Anthropic、Azure、Google、Groq、Ollama、OpenAI 等。从列表中选择一个提供者来配置它,并在 GitHub Copilot Chat 中开始使用其模型。

截图显示了“添加模型”下拉菜单,其中列出了已安装的语言模型提供者,包括 Copilot、Anthropic、Azure、Google 等。

这使得在不离开语言模型编辑器的情况下激活已安装的其他模型提供者变得很容易。通过选择提供者行上的齿轮图标来访问提供者管理。

扩展编写

认证会话中的ID令牌

认证会话接口现在包括一个可选的id令牌属性。这允许身份验证提供程序除了返回访问令牌外还返回 ID 令牌,这对于需要用户身份信息的场景特别有用。Microsoft 身份验证提供程序会返回此字段,而像 GitHub 这样的其他提供程序可能不会。

身份令牌包含关于已认证用户的声明,并由身份提供商签名,因此它们对于验证用户身份很有用。有关身份令牌和访问令牌之间区别的更多信息,请参见https://oauth.net/id-tokens-vs-access-tokens/.

导出 接口 认证会话 {
  /**
   * ID令牌。
   */
  只读 id令牌?: 字符串;
}

Git 扩展获取仓库工作区应用程序编程接口

内置的Git扩展提供了一个新的API,用于获取已知与Git仓库远程关联的文件夹。这通过在用户打开带有Git远程的文件夹时缓存仓库-远程到文件夹的映射来实现。

查看右侧栏中的容器

扩展程序作者现在可以通过使用新的方法在右侧栏中注册视图容器次要侧边栏贡献点。这使得扩展可以将其自定义视图放置在与聊天等内置视图相同的次侧边栏中,并与 VS Code 的双侧边栏布局更好地集成。

{
  "contributes": {
    "viewsContainers": {
      "secondarySidebar": [
        {
          "id": "myExtensionViews",
          "title": "My Extension",
          "icon": "$(extensions)"
        }
      ]
    },
    "views": {
      "myExtensionViews": [
        {
          "id": "myCustomView",
          "name": "Custom View",
          "when": "true"
        }
      ]
    }
  }
]

提议的API

快速选择和快速输入改进

The Quick Pick 和 Quick Input API 包括一些新功能,使扩展开发人员在创建交互式用户界面时具有更多的灵活性。

提议的API:切换按钮支持

扩展程序可以通过该功能在快速选择和快速输入界面中添加切换按钮。切换物业在快速输入这使得在输入框区域切换密码可见性成为可能,用户可以在不离开快速选择界面的情况下与控件进行交互。

我们非常感谢您对这个API提案的评论和反馈(请参考GitHub问题)。

导出 枚举 QuickInputButtonLocation {
  ...

  /**
   * The button is rendered at the far end inside the input box.
   */
  Input = 3
}

export interface QuickInputButton {
  ...

  /**
   * 当存在时,表示该按钮是一个可以被选中或取消选中的切换按钮。
   *
   * **注意:** 目前此属性仅适用于具有 {@link QuickInputButtonLocation.Input} 位置的按钮。
   * 对于此类按钮,必须设置此属性,并且在按钮切换时状态将被更新。
   * 对于具有其他位置值的按钮,此属性不能被设置。
   */
  readonly toggle?: { checked: boolean };
}

提议的API:支持快速选择的提示

快速选择支持一个提示类似于输入框中可用的属性。提示在输入框下方显示持久文本,用户输入时保持可见,提供有用的指导或说明,用户开始输入文本时不会消失。

我们非常感谢您对这个API提案的评论和反馈(请参考GitHub问题)。

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;
}

导出 接口 QuickPickOptions {
  /**
   * 可选的文本,提供给用户指示或上下文。
   *
   * 提示显示在输入框的下面和项目列表的上面。
   */
  prompt?: string;
}

提议的API:用于快速选择项目的文件图标

快速选择项目可以通过显示特定文件类型的图标资源uri物业在快速选择项目当您提供一个资源URI时,VS Code会自动根据资源类型推导出适当的标签、描述和图标,并匹配您当前主题的文件图标集。这在构建文件或文件夹选择界面时特别有用,因为用户可以通过他们熟悉的文件类型图标快速识别项目。

我们非常感谢您对这个API提案的评论和反馈(请参考GitHub问题)。

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.
   * - **图标**: 当{@link QuickPickItem.iconPath iconPath} 被设置为
   *   {@link ThemeIcon.File}{@link ThemeIcon.Folder} 时,派生自当前文件图标主题。
   */
  resourceUri?: Uri;
}

MarkdownStrings中的GitHub风格警报 (#209652)

我们已添加支持渲染 GitHub 风格的警报语法Markdown字符串通过设置一个新属性支持警报语法输入:.

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.
`;

这使得扩展可以在用户界面的各个位置渲染警报,例如评论:

截图显示了在评论线程中显示的 GitHub 风格的警报,每个警报类型都有其相应的图标和样式。

在 TreeItem 标签中支持 Markdown 字符串 (#115365)

扩展程序作者现在可以使用Markdown字符串在树视图项目标签中启用了一部分Markdown语法,包括代码图标和文本格式化。这使得扩展可以创建更丰富的树视图。

// Codicons
const itemWithIcon = new vscode.TreeItem({
  label: new vscode.MarkdownString('$(star) Starred item', true)
});

// 文本格式(必须包围整个字符串)
const 斜体项 = new vscode.树项({
  标签: new vscode.Markdown字符串('_斜体项_')
});

// 格式化和 codicons 可以组合
const 组合 = new vscode.TreeItem({
  label: new vscode.MarkdownString('_~~**$(check) 完成 $(star)**~~_', true)
});

上述项目显示为: 树视图的截图,显示了三个项目:一个带有图标和星号的项目,一个斜体项目,以及一个带有复选框和星号图标并带有粗体、斜体和删除线格式的组合项目。

工程

自动化的用户体验预发布测试探索

我们引入了一种新的自动化工作流程,帮助审阅者在拉取请求中了解UI更改,而无需手动检出和运行代码。通过添加~Copilot视频请将标签应用于带有用户界面更改的拉取请求后,会启动一个自动化流程,该流程会:

  • 从PR分支构建VS Code
  • 使用 GitHub Copilot CLI 与更改进行交互,并在此过程中录制视频 - 利用 playwright-mcp
  • 生成Playwright跟踪以进行详细检查
  • 将结果发布为PR的评论

虽然还为时尚早,但此工作流程可以减少代码审查所需的 manual 努力,特别是针对小型 UI 变更。视频和跟踪记录有助于审查人员快速验证更改是否按预期工作。目前,视频仅对团队成员可见。

关于此自动化的更多详细信息,请参见https://github.com/microsoft/vscode/issues/272529

macOS 11.0 的支持已结束

VS Code1.106 是最后一个支持 macOS 11.0 (macOS Big Sur) 的版本。请参阅我们的 常见问题 以获取更多信息。

重要修复

  • vscode#258236 - 添加用于安装扩展时的扩展请求超时设置
  • vscode#272945 - 任务未触发 onDidStartTerminalShellExecution
  • vscode#273372 - /**自动关闭* /在 .gitignore 文件中
  • vscode#243584 - 第一个输入在pwsh/conpty上被忽略
  • vscode#271952 - Copilot '配置说明' 快速选择不显示工作区级别的代理说明文件 (copilot-instructions.md, AGENTS.md)
  • vscode#274631 - 网络:在 Windows 上加载中间认证机构

谢谢

问题跟踪

对我们的问题跟踪的贡献:

拉取请求

贡献于Visual Studio Code输入:

贡献于vscode- copilot- 聊天输入:

贡献于vscode-HTML-语言服务输入:

贡献于vscode-json-languageservice输入:

贡献于vscode语言服务器节点输入:

贡献于vscode-拉取请求-GitHub输入:

贡献于vscode测试命令行输入:

贡献于调试适配器协议输入:

贡献于语言服务器协议输入:

贡献于摩纳哥编辑器输入:

贡献于节点-pty输入:

贡献于Python 环境工具输入:

我们非常感谢人们在新功能准备好后尽快尝试,所以经常查看这里并了解最新动态。

如果您想阅读以前 VS Code 版本的发行说明,请访问 更新 页面 code.visualstudio.com