2025 年 10 月(版本 1.106)
发布日期:2025 年 11 月 12 日
更新 1.106.1:此更新解决了这些问题
更新 1.106.2:此更新解决了这些问题
更新 1.106.3:此更新解决了这些问题
下载:Windows:x64 Arm64 | Mac:通用 Intel Apple 芯片 | Linux:deb rpm tarball Arm snap
欢迎来到 Visual Studio Code 2025 年 10 月发布版本。

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

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

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

代理委派
我们继续改进委派给云代理的体验。
当您使用云按钮从聊天面板委派给代理时,您将获得一组可用于委派的可用代理。您还可以通过 CLI 编辑器或终端实例中的 /delegate 命令,从 CLI 委派给 Copilot 编码代理。

CLI 代理编辑跟踪
聊天编辑会话现在会跟踪后台代理(例如 Copilot CLI)所做的编辑。当您从代理会话视图创建会话时,您可以通过行内编辑胶囊和工作集视图查看跟踪的编辑,从而更容易了解代理正在对您的工作区进行哪些更改。
聊天模式重命名为自定义代理
为了更好地与其他环境使用的术语保持一致,VS Code 中的聊天模式已重命名为自定义代理。

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

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

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

不区分重音的命令过滤
命令面板现在在搜索命令时忽略字符重音,无论您的键盘布局或语言偏好如何,都可以更轻松地找到所需内容。例如,当搜索包含单词 Générer(法语中的 Generate)的命令时,键入不带重音的 generer,匹配的命令会出现在结果中。
这在使用不同的键盘布局或在查找命令时输入错误时很有帮助。过滤基于 Unicode 规范化形式 D,并支持所有 Unicode 语言。
高级 VS Code 设置
VS Code 现在支持高级设置的概念。这些设置旨在配置专业场景,适用于需要对其环境进行精细控制的高级用户。默认情况下,高级设置在设置编辑器中是隐藏的,使界面保持精简,同时在需要时提供这些强大的选项。
要查看和配置高级设置,请在设置编辑器中的过滤器下拉菜单中选择高级(Advanced),或在搜索框中键入 @tag:advanced

当您按确切名称搜索特定设置或使用 @id: 过滤器时,高级设置会出现在结果中,而无需应用高级过滤器。这确保您始终可以找到您正在寻找的设置。
高级设置可以与其他过滤器结合使用,例如 @modified 或 @feature:,以帮助您准确找到所需内容。例如,@tag:advanced @feature:terminal 仅显示与终端相关的高级设置。
注意:扩展作者可以通过向设置配置添加
advanced标签来将其设置标记为高级设置。
聊天
基于嵌入的工具选择
在此版本中,我们显着改进了为在聊天中启用了许多(超过 100 个)工具的用户过滤和分组工具的方式。您应该会更少看到“Optimizing tool selection...”加载状态,并且持续时间更短。我们还改进了工具选择,降低了代理混淆的可能性,以确保选择正确的工具。
工具批准和信任
外部数据的后批准
引入外部数据的代理工具现在支持后批准。这有助于防止潜在的提示注入攻击,让您在数据用于聊天会话之前对其进行审查。
#fetch 工具和声明 openWorldHint 的模型上下文协议 (MCP) 工具启用了后批准。
信任服务器或扩展的所有工具
您现在可以通过允许(Allow)按钮下拉菜单在源级别信任 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 的描述。这应该使代理建议的命令更可靠,并且不太可能失败,尤其是对于 PowerShell。
除此之外,对于 PowerShell,我们还将 && 重写为 ;,因为 Windows PowerShell (v5) 不支持 && 链式运算符。请注意,在 vscode#274548 处理之前,PowerShell 7 也会暂时发生这种情况。
将终端命令附加到聊天
您现在可以从命令装饰的上下文菜单中将终端命令作为上下文附加到聊天。附件共享命令行、捕获的输出和退出代码,以便代理准确了解发生了什么。这适用于 shell 集成跟踪的任何命令,从而无需复制和粘贴文本即可轻松升级故障排除。
在聊天中查看终端输出(实验性)
新的 chat.tools.terminal.outputLocation 设置控制输出显示的位置。默认值 none 可防止终端占用面板空间。
每次聊天终端调用现在都会在进度元素上显示两个操作
- 显示终端(Show Terminal)显示并聚焦隐藏的会话,通过丰富的 shell 集成,直接滚动到相关命令。如果只有基本或没有 shell 集成,此操作仍会聚焦正确的终端选项卡。
- 显示输出(Show Output)在聊天视图中以内联方式打开终端的最终输出。当命令以非零代码退出时,输出视图会自动展开。
当 npm i 失败时,输出会自动展开。终端通过显示终端内联操作显示。
发现隐藏的聊天终端(实验性)
当 setting(chat.tools.terminal.outputLocation):none 时,当至少有一个隐藏的聊天终端时,终端选项卡视图中会出现一个新的X hidden terminal(s)按钮。它会打开一个快速选择器,其中列出每个聊天终端及其聊天会话,以便您可以立即聚焦正确的进程。相同的选择器可从终端溢出菜单中的查看隐藏的聊天终端(View Hidden Chat Terminals)获得,并且一旦所有聊天终端再次可见,它就会消失。
代理运行 ls -la,成功,因此输出折叠。从选项卡视图中选择隐藏终端(hidden terminal)操作,选择、显示终端并滚动以突出显示命令。
将对话保存为提示
您现在可以使用 /savePrompt 命令将聊天对话保存为可重用提示。当您在活动聊天会话中调用 /savePrompt 时,VS Code 会生成一个提示文件,其中包含基于您的对话的通用提示。编辑器会显示一个蓝色按钮,允许您将此提示保存到有效位置,无论是用户级别还是工作区级别。

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

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

内联聊天 v2(预览版)
我们加大了努力来现代化内联聊天。它的构建目的是
- 单个提示,
- 单个文件,
- 并且只用于代码更改
这使得整体体验更轻量级,并允许简化的 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 服务器编辑器中使用安装(工作区)操作。这会将 MCP 服务器添加到当前工作区中的 .vscode/mcp.json 文件,从而更容易与您的团队共享 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 规范的最新草案中有所提及,预计很快会定稿。
辅助功能
语音超时默认禁用
配置 accessibility.voice.speechTimeout 已更改为默认为 0。这意味着,语音会话不再在特定延迟后自动结束(例如,如果您暂停,聊天请求不会自动触发)。我们认为这是一个更好的默认体验,但您始终可以更改回以前的默认值(2500)。
聊天输入改进
聊天输入现在以更清晰的顺序宣布活动代理和模型,以便屏幕阅读器用户首先听到最相关的上下文。聊天可访问性帮助还指出您可以按 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
在此里程碑中,我们增加了在源代码管理图表视图中轻松查看传入和传出更改的功能。对于具有传入或传出更改的活动分支,图表会显示“传入更改”和“传出更改”节点。选择每个节点会显示传入或传出文件的列表。

您可以使用 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。
在第一次迭代中,我们重点关注分支和标签。您可以创建新分支、标签,查看分支和标签列表,并对每个分支/标签执行各种操作(例如:checkout 等)。在即将到来的里程碑中,我们将添加更多信息(例如:stash、remotes 等)。试用此实验性功能并告诉我们您的想法。

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

完成有各种来源,例如路径全部由核心处理
某些命令具有高级规范,例如 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 “幽灵文本”集成以及如何呈现它。
- 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 在执行终端命令之前等待 shell 集成就绪的时间,包括通过 executeCommand API 和 Copilot 终端工具触发的命令。
chat.tools.terminal.shellIntegrationTimeout 已弃用,取而代之的是此统一设置。
认证
管理扩展帐户偏好设置的可发现性
Manage Extension Account Preferences 命令现在更容易发现。除了在命令面板和扩展上下文菜单中可用之外,它现在还出现在帐户菜单中,与管理语言模型访问(Manage Language Model Access)一起。这使得查找和配置扩展可以访问哪些帐户变得更容易。

最后一个 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 会自动回退到设备代码流,该流会显示一个代码,您可以在另一台设备上输入该代码以完成身份验证。
管理帐户命令
使用 Accounts: Manage Accounts 命令直接从命令面板管理您的身份验证帐户。当帐户菜单隐藏或不容易访问时,此命令提供对帐户管理功能的访问。

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

转换通配符导入代码操作
通配符导入(from module import *)在 Python 中通常不受鼓励,因为它们会使您的命名空间混乱,并且使名称来源不清楚,从而降低代码清晰度和可维护性。Pylance 现在通过新的代码操作帮助您清理仍然依赖 from module import * 的模块。它将通配符替换为显式符号,保留别名并将导入保留为单个语句。要试用它,您可以单击带有通配符导入的行并按 Ctrl+.(或 macOS 上的 Cmd+.)以选择转换为显式导入(Convert to explicit imports)代码操作。

dotenv
内置对 dotenv 文件(.env)的基本支持,这些文件通常用于为应用程序定义环境变量。
对扩展的贡献
GitHub 拉取请求
GitHub Pull Requests 扩展取得了更多进展,该扩展使您能够处理、创建和管理拉取请求和问题。新功能包括:
- AI 生成的 PR 描述(通过 githubPullRequests.pullRequestDescription)将遵守存储库 PR 模板(如果存在)。
- 拉取请求视图中的草稿现在以斜体呈现,而不是带有
[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 版本的更新日志以了解此版本中的所有内容。
预览功能
语言模型编辑器
新的语言模型(Language Models)编辑器提供了一个集中位置来查看和管理 GitHub Copilot Chat 的所有可用语言模型。您可以从聊天模型选择器或通过命令 Chat: Manage Language Models 打开它。
注意:此功能仅在 VS Code Insiders 中可用。

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

当您有权访问许多模型并希望通过仅在选择器中显示首选模型来简化工作流程时,这特别有用。
从已安装的提供程序添加模型
使用添加模型...(Add Models...)按钮配置和添加已安装语言模型提供程序的模型。当您选择此按钮时,您会看到一个包含所有已安装模型提供程序(例如 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)API 包含几个新功能,为扩展开发人员创建交互式用户界面提供更大的灵活性。
提议的 API:切换按钮支持
扩展可以通过 QuickInput 上的 toggles 属性向快速选择和快速输入界面添加切换按钮。这使得在输入框区域中实现密码可见性切换等场景成为可能,允许用户在不离开快速选择界面的情况下与控件进行交互。
我们感谢您对此 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:快速选择的提示支持
快速选择支持 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:快速选择项的文件图标
快速选择项可以通过 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;
}
MarkdownString 中的 GitHub 样式警报(#209652)
我们添加了对在 MarkdownString 中渲染 GitHub 样式警报语法的支持,方法是设置一个新属性 supportAlertSyntax。
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 语法的子集,包括 codicon 和文本格式。这使扩展能够创建更具视觉丰富性的树视图。
// 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): fix: 增加 macos tahoe 上的 workbench 边框半径 PR #270236
- @baptiste0928 (Baptiste Girardeau): fix: 在合并编辑器上解析重命名路径 PR #254677
- @barroit (barroit): Fix tabstop calc in tokenizeLineToHTML() PR #263387
- @Benimautner: Fix: 如果输入设备是鼠标,则不应用惯性滚动。 PR #268284
- @danielbayley (Daniel Bayley): 添加
TM_DIRECTORY_BASE代码片段变量 PR #270262 - @dibarbet (David Barbet): 将语义标记范围刷新通知挂接到视口贡献 PR #271419
- @dnicolson (Dave Nicolson): 更新激活事件 linter 消息 PR #269156
- @DrSergei (Sergei Druzhkov): Fix disassembly view PR #270361
- @gjsjohnmurray (John Murray): 在更多情况下显示
Learn How to Hide AI Features(修复 #268450) PR #268462 - @imbant (imbant): fix(chat): correct file icon rendering in Files & Folders picker PR #255384
- @JeffreyCA: Add Fig spec for Azure Developer CLI (azd) PR #272348
- @jlelong (Jerome Lelong)
- Make pair colorizer ignore @ifnextchar PR #272329
- Exclude trailing underscore from bracket pairs in LaTeX PR #272758
- @jmg-duarte (José Duarte): Fix localization for terminal.hoverHighlightBackground PR #264228
- @Mingpan: Copy selection for deleted chunk in inline diff PR #267991
- @obrobrio2000 (Giovanni Magliocchetti)
- Add "Go to Next/Previous Uncovered Line" navigation for Test Coverage PR #269505
- html: add setting to disable end tag suggestions PR #269605
- @ohah (ohah): fix: file-found Badge vertical (#_235159) PR #238757
- @rajniszp (Piotr Rajnisz): i18n: add missing localizations for monaco-editor PR #268038
- @RedCMD (RedCMD): Fix soft wrapping on \n PR #258407
- @remcohaszing (Remco Haszing): Add dotenv support PR #273074
- @ritesh006 (Ritesh Kudkelwar): feat(ts-codeLens): show "implementations" CodeLens for overridden methods #263749 PR #264546
- @Selva-Ganesh-M (Selva Ganesh M): fix(editor)(#_261780): transform UPPER_CASE to PascalCase PR #262959
- @SimonSiefke (Simon Siefke)
- fix: memory leak in gettingStarted PR #216876
- fix: memory leak in output view PR #221605
- fix: memory leak in notebook text model PR #265013
- fix: memory leak in InlayHints PR #265185
- fix: memory leak in chat session tracker PR #269027
- fix: memory leak in getTerminalActionBarArgs PR #269516
- fix: memory leak in sticky scroll PR #271102
- fix: memory leak in chat welcome PR #271121
- @sinsincp: Fix AppUserModelID for code-workspace association PR #272753
- @Skn0tt (Simon Knott): Testing - Uncompleted result should be marked as skipped PR #273742
- @subin-chella (subin): fix the bug #209943 PR #216662
- @tamuratak (Takashi Tamura)
- chat: always apply prompt file and auto-attach instructions. Fix #271624 PR #272020
- fix(chat): guard against undefined customModes.custom Fix #272223 and #272236 PR #272263
- @yavanosta (Dmitry Guketlev): Fix memory leak in InlineEditsGutterIndicator (#_273549) PR #273550
对 vscode-copilot-chat 的贡献
- @24anisha: Built-in toolsets for default tools PR #1139
- @AbdelrahmanAbouelenin (ababouelenin): Custom vsc model prompt PR #1504
- @devm33 (Devraj Mehta): Update repo URL in @vscode/chat-lib package PR #1255
- @DGideas (Wanlin Wang 王万霖): Improve error handling for Copilot Chat when 404 PR #1073
- @IanMatthewHuff (Ian Huff): Fix issue with internal git repo telemetry collection PR #1408
- @joelverhagen (Joel Verhagen): Allow latest server.json schema in assisted NuGet MCP install flow PR #1268
- @phawrylak (Paweł Hawrylak): Add security-sensitive file extensions to workspace indexing exclusion list PR #1157
对 vscode-html-languageservice 的贡献
- @obrobrio2000 (Giovanni Magliocchetti): Add setting to disable end tag suggestions PR #219
对 vscode-json-languageservice 的贡献
- @Legend-Master (Tony): Escape plain text description hover correctly PR #283
对 vscode-languageserver-node 的贡献
- @dibarbet (David Barbet): Clear workspace pull state on document close to prevent stale diagnostics PR #1674
对 vscode-pull-request-github 的贡献
- @bendrucker (Ben Drucker): Enable all LLM tools in prompts (agent mode) PR #6956
- @gerardbalaoro (Gerard Balaoro): Make branch list timeout configurable (#_2840) PR #7927
- @wankun-tcj: Fix avatar display issue in Pull Request tree view PR #7851
对 vscode-test-cli 的贡献
- @bwateratmsft (Brandon Waterloo [MSFT]): Bump version ahead of release PR #86
对 debug-adapter-protocol 的贡献
- @rsubtil (Ricardo Subtil): Add Godot to the list of DAP adapters PR #568
对 language-server-protocol 的贡献
- @kristoff-it (Loris Cro): Update servers.md PR #2192
对 monaco-editor 的贡献
- @flofriday (Florian Freitag): Fix Kotlin number literals PR #4973
对 node-pty 的贡献
- @devm33 (Devraj Mehta): Load native addons directly from prebuilds directory PR #809
对 python-environment-tools 的贡献
- @VictorColomb (Victor Colomb): fix(poetry): pep503 normalize package name PR #242
我们非常感谢大家在新功能准备就绪后立即进行试用,请经常回来查看并了解新功能。
如果您想阅读以前 VS Code 版本的发行说明,请访问 code.visualstudio.com 上的更新页面。