2025 年 6 月 (版本 1.102)
发布日期:2025 年 7 月 9 日
更新 1.102.1:本次更新解决了这些 问题。
更新 1.102.2:本次更新解决了这些 问题。
更新 1.102.3:本次更新解决了这些 问题。
下载:Windows:x64 Arm64 | Mac:Universal Intel silicon | Linux:deb rpm tarball Arm snap
欢迎来到 Visual Studio Code 2025 年 6 月版本。此版本包含许多更新,我们希望您会喜欢,其中的一些主要亮点包括:
-
聊天
-
MCP
-
编辑器体验
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新。Insiders:想尽快尝试新功能吗?您可以下载每晚Insiders版本并尽快尝试最新更新。
聊天
Copilot Chat 已开源
我们很高兴地宣布,我们已将 GitHub Copilot Chat 扩展开源!该源代码现已在 MIT 许可下于 microsoft/vscode-copilot-chat 提供。
这标志着我们在致力于透明度和社区协作方面迈出了重要一步。通过将扩展开源,我们使社区能够:
- 直接贡献 VS Code 中 AI 驱动的聊天体验的开发
- 理解聊天模式、自定义指令和 AI 集成的实现
- 基于我们的工作创建更优秀的 AI 开发人员工具
- 参与塑造 AI 辅助编码的未来
您可以浏览存储库,了解诸如 代理模式、内联聊天和 MCP 集成 等功能是如何实现的。我们欢迎社区的贡献、反馈和协作。
要了解有关此里程碑以及我们对开源 AI 编辑器工具的更广泛愿景的更多信息,请阅读我们详细的博客文章:开源 AI 编辑器 - 第一个里程碑。
聊天模式改进
在上一个里程碑中,我们预览了自定义聊天模式。除了内置的“Ask”、“Edit”和“Agent”聊天模式外,您还可以定义自己的聊天模式,并附带特定的指令和一组允许的工具,供 LLM 在回复请求时遵循。
在此里程碑中,我们在该领域进行了一些改进和错误修复。
配置语言模型
应广大用户要求,您现在还可以指定应为聊天模式使用的语言模型。将 model 元数据属性添加到您的 chatmode.md 文件中,并提供模型标识符(我们提供模型信息的 IntelliSense)。

改进的编辑支持
用于聊天模式、提示和指令文件的编辑器现在支持所有支持的元数据属性的自动补全、验证和悬停。


聊天视图中的齿轮菜单
聊天视图工具栏中的配置聊天操作允许您管理自定义模式以及可重用的指令、提示和工具集。

选择模式将显示所有当前安装的自定义模式,并允许您打开、创建新模式或删除模式。
通过 vscode 链接导入模式、提示和指令
您现在可以从外部链接导入聊天模式、可重用提示和指令文件,例如 gist 或我们的awesome-copilot 社区存储库。例如,以下链接将导入 Burke's GPT 4.1 Beast Mode 的聊天模式文件:
将 GPT 4.1 Beast Mode 添加到 VS Code
这将提示您选择一个目标位置,可以是您当前的工作区或用户设置,并在导入 URL 中的模式文件之前确认名称。
在awesome-copilot 上试用 100 多个社区贡献的指令、提示和聊天模式。
生成自定义指令
为您的项目设置自定义指令可以通过提供有关您的编码标准和项目约定的上下文来显著改进 AI 建议。但是,从头开始创建有效的指令可能具有挑战性。
在此里程碑中,我们引入了聊天:生成指令命令,以帮助您为工作区引导自定义指令。从命令面板或聊天视图中的“配置”菜单运行此命令,代理模式将分析您的代码库,生成反映项目结构、技术和模式的定制指令。
该命令会在您的 .github 文件夹中创建一个 copilot-instructions.md 文件,或建议改进现有指令文件。然后,您可以审查并自定义生成的指令,以匹配您团队的特定需求。
了解有关使用指令自定义 AI 响应的更多信息。
按需加载指令文件
指令文件可用于描述编码实践和项目要求。指令可以手动或自动包含为聊天请求的上下文。
支持各种机制,请参阅文档中的自定义指令部分。
对于您想条件性包含的大型指令,可以使用 .instructions.md 文件结合在 applyTo 标头中定义的 glob 模式。当 glob 模式匹配聊天上下文中的一个或多个文件时,文件会自动添加。
此版本的新功能是,大型语言模型可以按需加载指令。每个请求都会收到一个包含 glob 模式和描述的所有指令文件的列表。在此示例中,LLM 没有为上下文中明确添加的 TypeScript 文件提供任何指令。因此,它在创建 TypeScript 文件之前会查找代码样式规则。

编辑之前的请求(实验性)
现在,您可以单击之前的请求来修改文本内容、附加的上下文、模式和模型。提交此更改后,将删除所有后续请求,撤消所有已做的编辑,并将新请求发送到聊天。
我们将对编辑请求的不同入口点进行受控的推出,这将帮助我们收集有关首选编辑和撤销流程的反馈。但是,用户可以通过实验性的 chat.editRequests 设置来设置他们偏好的模式。
- chat.editRequests.inline:将鼠标悬停在请求上并选择文本以在请求内进行编辑。
- chat.editRequests.hover:将鼠标悬停在请求上以显示一个工具栏,其中包含一个按钮以在请求内进行编辑。
- chat.editRequests.input:将鼠标悬停在请求上以显示一个工具栏,该工具栏将在聊天底部的输入框中开始编辑。
终端自动批准(实验性)
代理模式现在有一个用于自动批准终端命令的机制。以下是使用默认设置的演示。
目前有两个设置:允许列表和拒绝列表。允许列表是命令前缀或正则表达式的列表,匹配时允许在未经明确批准的情况下运行该命令。例如,以下命令将允许运行以 npm run test 开头的任何命令,以及完全等于 git status 或 git log 的命令。
"github.copilot.chat.agent.terminal.allowList": {
"npm run test": true,
"/^git (status|log)$/": true
}
这些设置会在设置范围之间合并,因此您可以拥有一组用户批准的命令,以及特定于工作区的已批准命令。
对于链式命令,我们尝试根据 shell 检测这些情况,并要求所有子命令都获得批准。因此,对于 foo && bar,我们会检查 foo 和 bar 是否都允许,只有这样才会未经批准地运行。我们还尝试检测内联命令,例如 echo $(pwd),这将检查 echo $(pwd) 和 pwd。
拒绝列表的格式与允许列表相同,但会覆盖它并强制批准。目前,这主要用于您在允许列表中有广泛的条目,但希望阻止其中可能包含的某些命令。例如,以下命令将允许以 npm run 开头的所有命令,除非它以 npm run danger 开头。
"github.copilot.chat.agent.terminal.allowList": {
"npm run": true
},
"github.copilot.chat.agent.terminal.denyList": {
"npm run danger": true
}
由于我们从工作区信任中获得的针对提示注入的保护,我们在实现此功能时对安全性的理念是,在允许列表中包含一小组无害的命令,在拒绝列表中包含一组特别危险的命令,以防它们溜走。默认情况下,允许列表是空的,因为我们仍在考虑默认值是什么,但这是我们的想法:
- 允许列表:
echo、cd、ls、cat、pwd、Write-Host、Set-Location、Get-ChildItem、Get-Content、Get-Location - 拒绝列表:
rm、rmdir、del、kill、curl、wget、eval、chmod、chown、Remove-Item
我们要添加到此功能中的两个主要部分是:一个 UI 入口点,用于更轻松地将新命令添加到列表中(#253268),以及一个选择加入选项,允许 LLM 评估命令的安全性(#253267)。我们还计划在下一个版本中删除这些设置的 github.copilot. 前缀(#253314)并将其合并(#253472),然后将其设为预览设置。
终端命令简化
代理模式有时会想运行带 cd 语句的命令,以防万一。我们现在检测这种情况,当它匹配当前工作目录时,将简化运行的命令。

代理感知任务和终端
代理模式现在了解它创建了哪些后台终端以及哪些任务正在运行。代理可以通过使用新的 GetTaskOutput 工具读取任务输出,这有助于防止运行重复任务并提高工作区上下文。

最大化聊天视图
您现在可以将次级侧边栏最大化以跨越编辑器区域,并隐藏主侧边栏和面板区域。VS Code 将在重启之间记住此状态,并在您打开编辑器或视图时恢复聊天视图。
您可以使用关闭按钮旁边的新图标切换最大化状态,或使用命令面板中的新命令 workbench.action.toggleMaximizedAuxiliaryBar 进行切换。
代理模式徽章指示器
当窗口未获得焦点且代理需要用户确认才能继续时,我们现在会在 Dock 中的应用程序图标上显示一个徽章。只要触发该徽章的相应窗口获得焦点,徽章就会消失。

您可以通过 chat.notifyWindowOnConfirmation 设置启用或禁用此徽章。
从命令行启动聊天
VS Code CLI 中添加了一个新的子命令 chat,该命令允许您在当前工作目录中使用提供的提示启动聊天会话。
基本语法是 code chat [options] [prompt],选项可以是任何
-m --mode <mode>:用于聊天会话的模式。可用选项:“ask”、“edit”、“agent”,或自定义模式的标识符。默认为“agent”。-a --add-file <path>:将文件作为上下文添加到聊天会话--maximize:最大化聊天会话视图-r --reuse-window:强制使用最后一个活动窗口进行聊天会话-n --new-window:强制打开一个空窗口进行聊天会话
支持从 stdin 读取,前提是您在末尾传入 -,例如 ps aux | grep code | code chat <prompt> -。
Fetch 工具支持非 HTTP URL
我们注意到,有时模型希望使用非 HTTP URL(例如 file:// URL)调用 Fetch 工具。Fetch 工具现在支持这些 URL,而不是禁止它们,并返回 URL 处的文件或资源的內容。图像也受支持。
更清晰的语言模型访问管理
我们重新设计了管理扩展访问扩展提供的语言模型的用户体验。以前,您会在“帐户”菜单中看到一个名为 AccountName (GitHub Copilot Chat) 的项目,它与 GitHub Copilot Chat 使用的帐户无关。相反,它允许您管理哪些扩展可以访问 Copilot Chat 提供的语言模型。
为了使其更清晰,我们删除了 AccountName (GitHub Copilot Chat) 项目,并用一个名为 管理语言模型访问... 的新项目替换了它。此项目会打开一个快速选择器,让您管理哪些扩展可以访问 GitHub Copilot Chat 提供的语言模型。

我们认为这样更清晰……话虽如此,在未来的版本中,我们将探索对语言模型进行更细粒度的访问控制(例如,只允许特定的模型而不是扩展提供的所有模型),因此请继续关注。
读取聊天请求
由于聊天扩展本身是开源的,您现在可以访问我们内部使用了一段时间的调试工具之一。要轻松查看 Copilot Chat 发出的所有请求的详细信息,请运行命令“显示聊天调试视图”。这将显示一个树视图,其中包含每个请求的条目。您可以查看发送到模型的完整提示、启用的工具、响应以及其他关键详细信息。您可以通过右键单击 ->“导出为...”来保存请求日志。
该视图还包含单独的工具调用条目,以及一个在简单浏览器中打开的 prompt-tsx 调试视图。
🚨 注意:此日志在排除故障方面非常有用,在提交有关代理行为的 issue 时,我们将不胜感激。但是,此日志可能包含个人信息,例如文件内容或终端输出。请在与他人共享之前仔细审查内容。
编辑工具改进
此版本包含对用于 GPT-4 模型和 Sonnet 模型的编辑工具的可预测性和可靠性的一些更改。在此版本中,您应该会看到更可靠的编辑行为,并且我们将在未来的版本中继续改进这些工具。
MCP
VS Code 中的 MCP 支持普遍可用
在过去的几个月里,我们一直在努力扩展 VS Code 中的 MCP 支持,并支持规范中的所有 MCP 功能。从这个版本开始,MCP 支持现已在 VS Code 中普遍可用!
此外,组织现在可以通过 GitHub Copilot 策略控制 MCP 服务器的可用性。在 GitHub Copilot 文档中了解有关为您的企业管理 Copilot 的策略和功能的更多信息。
您可以通过安装我们精选列表中的流行 MCP 服务器来开始使用。了解有关在 VS Code 中使用 MCP 服务器的更多信息,以及如何使用它们来扩展代理模式。

如果您想构建自己的 MCP 服务器,请查看我们的MCP 开发人员指南,了解有关如何利用 VS Code 中的 MCP 功能的更多详细信息。
对提示的支持
最新的 MCP 规范添加了对提示的支持,作为 MCP 服务器向 MCP 客户端请求输入的一种方式。最新版本的 VS Code 采用了此规范,并支持提示。
MCP 服务器发现和安装
扩展视图中的新MCP 服务器部分包含欢迎内容,其中直接链接到我们精选列表中的流行 MCP 服务器。访问网站以探索可用的 MCP 服务器,并对任何 MCP 服务器选择安装。这将自动启动 VS Code 并打开 MCP 服务器编辑器,显示服务器的自述文件和清单信息。您可以查看服务器详细信息并选择安装,将服务器添加到您的 VS Code 实例。
安装后,MCP 服务器会自动出现在扩展视图的MCP SERVERS - INSTALLED 部分下,其工具在聊天视图的工具快速选择器中可用。这使得验证您的 MCP 服务器是否正常工作并立即访问其功能变得容易。
MCP 服务器管理视图
扩展视图中的新MCP SERVERS - INSTALLED 视图使您可以轻松地监视、配置和控制已安装的 MCP 服务器。

该视图列出了已安装的 MCP 服务器,并通过上下文菜单提供多种管理操作:

- 启动服务器 / 停止服务器 / 重启服务器:控制服务器的运行状态
- 断开连接帐户:从服务器移除帐户访问
- 显示输出:查看服务器的输出日志以进行故障排除
- 显示配置:打开服务器的运行时配置
- 配置模型访问:管理服务器可以访问哪些语言模型
- 显示采样请求:查看用于调试的采样请求
- 浏览资源:探索服务器提供的资源
- 卸载:从您的 VS Code 实例中移除服务器
选择已安装的 MCP 服务器后,VS Code 会打开 MCP 服务器编辑器,显示服务器的自述文件详细信息、清单及其运行时配置。这提供了服务器功能和当前设置的概述,使其易于理解服务器的功能及其配置方式。

MCP SERVERS - INSTALLED 视图还提供浏览 MCP 服务器... 操作,直接将您带到社区网站,使服务器发现始终可以从 VS Code 中访问。

MCP 服务器作为一流资源
MCP 服务器现在被视为 VS Code 中的一流资源,类似于用户任务和其他特定于配置文件的配置。这代表了从以前将 MCP 服务器存储在用户设置中的方法的重大架构改进。此更改使 MCP 服务器管理更加健壮,并在您的通用 VS Code 设置和 MCP 服务器配置之间提供了更好的关注点分离。当您安装或配置 MCP 服务器时,它们会自动存储在相应的配置文件特定的位置,以确保您的主设置文件保持干净和专注。
- 专用存储:MCP 服务器现在存储在每个配置文件中的专用
mcp.json文件中,而不是弄乱您的用户设置文件。 - 特定于配置文件:每个 VS Code 配置文件维护自己的一组 MCP 服务器,使您能够为不同的工作流或项目配置不同的服务器。
- 设置同步集成:MCP 服务器通过设置同步在您的设备之间无缝同步,并对要同步的内容进行细粒度控制。
MCP 迁移支持
随着 MCP 服务器成为一流资源以及与之相关的配置更改,VS Code 为从旧 MCP 服务器配置格式升级的用户提供了全面的迁移支持。
- 自动检测:
settings.json中现有的 MCP 服务器会自动检测并迁移到新的特定于配置文件的mcp.json格式。 - 实时迁移:当您将 MCP 服务器添加到用户设置时,VS Code 会立即进行迁移,并附带一条有用的通知来解释更改。
- 跨平台支持:迁移在所有开发场景中无缝工作,包括本地、远程、WSL 和 Codespaces 环境。
此迁移可确保您现有的 MCP 服务器配置继续正常工作,无需手动干预,同时提供新架构的增强管理功能。
Dev Container 对 MCP 配置的支持
Dev Container 配置 devcontainer.json 和 Dev Container 功能配置 devcontainer-feature.json 在路径 customizations.vscode.mcp 下支持 MCP 服务器配置。创建 Dev Container 时,收集的 MCP 服务器配置将被写入远程 MCP 配置文件 mcp.json。
配置 Playwright MCP 服务器的示例 devcontainer.json
{
"image": "mcr.microsoft.com/devcontainers/typescript-node:latest",
"customizations": {
"vscode": {
"mcp": {
"servers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
}
}
}
访问 MCP 资源的命令
为了使使用 MCP 服务器更加便捷,我们添加了命令来帮助您管理和访问 MCP 配置文件。
- MCP:打开用户配置 - 直接访问您的用户级别
mcp.json文件 - MCP:打开远程用户配置 - 直接访问您的远程用户级别
mcp.json文件
这些命令提供对 MCP 配置文件的快速访问,使您可以轻松地直接查看和管理您的服务器配置。
MCP 身份验证的快速管理
您现在可以从 MCP 齿轮菜单和快速选择器中登出或断开帐户连接。
-
MCP 视图齿轮菜单:

-
MCP 编辑器齿轮菜单:

-
MCP 快速选择器:

当帐户被其他 MCP 服务器或扩展使用时,将显示断开连接操作;当帐户仅由 MCP 服务器使用时,将显示登出。登出操作将完全从 VS Code 中删除帐户,而断开连接仅移除对 MCP 服务器的帐户访问。
辅助功能
保留编辑器中的所有编辑
以前,要接受所有编辑,焦点必须在聊天视图中。现在,当焦点在编辑器中时,您可以运行保留所有编辑命令(⌥⌘Y (Windows、Linux Ctrl+Alt+Y))。
用户操作所需声音
我们微调了无障碍信号,以指示何时聊天需要用户操作,并将默认值设置为 auto,以便屏幕阅读器用户能够听到此信号。您可以使用 accessibility.signals.chatUserActionRequired 设置配置此行为。
渲染错误发生在聊天时发出警报
以前,屏幕阅读器用户在发生聊天渲染错误时不会收到警报。用户现在会收到此信息的警报,并且还可以通过键盘对其进行聚焦。
代码编辑
鼠标中间键单击滚动
只需单击或按住鼠标中键(滚轮)并移动鼠标即可滚动编辑器。
激活后,光标会变成平移图标,上下移动鼠标即可在该方向上平滑滚动编辑器。滚动速度取决于您将鼠标移离初始单击点的距离。释放鼠标中键或再次单击以停止滚动并恢复到标准光标。
已知冲突
启用此功能可能会干扰与鼠标中键关联的其他操作。例如,如果您启用了列选择(editor.columnSelection),按住鼠标中键将选择文本。同样,在 Linux 上,选择剪贴板(editor.selectionClipboard)会在单击鼠标中键时粘贴剪贴板中的内容。
为避免这些冲突,请一次只启用其中一个设置。
暂停代码补全
您现在可以使用新的暂停功能暂时暂停内联建议和下一个编辑建议 (NES)。当您想在没有建议干扰的情况下专注于工作时,这很有用。
要暂停建议,请选择状态栏中的 Copilot 仪表板,或从命令面板运行暂停内联建议命令,然后从下拉菜单中选择一个持续时间。在暂停期间,不会出现内联建议或 NES。

您还可以通过将所需的持续时间作为参数传递给命令来为自定义键绑定分配一个快捷键,以快速暂停建议。例如:
{
"key": "...",
"command": "editor.action.inlineSuggest.snooze",
"args": 10
}
编辑器体验
Windows 强调色
Windows 上的 VS Code 现在支持使用强调色作为窗口框架边框,如果已在 Windows 设置中启用(“在标题栏和窗口边框上显示强调色”)。

新的 window.border 设置允许您控制窗口边框的颜色。使用 default 使用 Windows 强调色,使用 off 禁用边框,或提供特定的颜色值来使用自定义颜色。
注意:边框仅在相关的 Windows 设置启用时可见。它还不能按工作区设置,但我们正在为此提供支持。
设置搜索建议(预览)
设置:workbench.settings.showAISearchToggle
在此里程碑中,我们修改了设置编辑器中的闪烁切换开关,使其成为 AI 和非 AI 搜索结果之间的切换。AI 设置搜索结果是语义上相似的结果,而不是基于字符串匹配的结果。例如,当您搜索“增大文本大小”时,editor.fontSize 将作为 AI 设置搜索结果出现。
仅当有 AI 结果可用时,切换开关才会启用。我们欢迎对 AI 设置搜索未找到预期设置的反馈,并且我们计划在下一迭代中默认启用该设置。
任务
重新运行所有正在运行的任务
您现在可以使用新的 Tasks: Rerun All Running Tasks 命令快速重新运行所有当前正在运行的任务。这对于涉及多个并发任务的工作流很有用,允许您一次性重新启动所有任务,而无需单独停止和重新运行每个任务。
重新启动任务将重新加载更新的 tasks.json
重新启动任务命令现在会在重新启动之前重新加载您的 tasks.json,以确保尊重任何最近的更改。以前,在重新启动任务时不会拾取任务配置更改,这可能会导致混淆或过时的任务行为。
终端
终端建议(预览)
我们在终端建议功能方面进行了重大改进。
选择模式
一个新的设置 terminal.integrated.suggest.selectionMode 帮助您了解默认情况下,Tab (而不是 Enter) 会接受建议。您可以在 partial、always 和 never 模式之间进行选择,以控制建议的选择和接受方式。
默认值为 partial,这意味着 Tab 会接受建议,直到发生导航。

了解更多
终端建议控件状态栏中的“了解更多”操作 (kb(workbench.action.terminal.suggestLearnMore)) 现在会显示前 10 次或显示 10 秒钟。这有助于您了解如何配置、禁用和阅读建议控件。

多命令支持
终端建议现在支持多命令。您可以使用 ;、&& 和其他 shell 运算符链接命令,并接收该行上所有命令的建议。

符号链接信息
我们现在会在建议详细信息控件中显示符号链接的真实路径,并为符号链接文件和文件夹提供独特的图标,以帮助区分它们与其他建议。

改进的排序
我们通过多种方式改进了排序,以便首先提供最相关的建议。例如,将 main 和 master 的优先级高于其他分支。

Git Bash 改进
我们现在正确支持 Git Bash 的文件夹和文件路径补全。此外,我们还加载内置命令并将其作为建议显示。

对扩展的贡献
GitHub 拉取请求
GitHub Pull Requests 扩展取得了更多进展,该扩展使您能够处理、创建和管理拉取请求和问题。
GitHub Pull Requests 扩展和 Copilot coding agent 之间的集成得到了深化,允许您直接从 VS Code 开始、查看和管理 coding agent 会话。
这些功能要求您的工作区打开到一个已启用 Copilot coding agent 的存储库。
请参阅该扩展的 0.114.0 版本 更改日志,以了解该版本中的所有内容。
启动 coding agent 会话 (预览)
通过在聊天中调用 #copilotCodingAgent 工具,要求 Copilot 在后台继续进行本地更改。
此工具会自动将挂起的更改推送到远程分支,并根据用户指令从此分支启动 coding agent 会话。

实验性:可以通过 githubPullRequests.codingAgent.uiIntegration 设置启用更深入的 UI 集成。启用后,对于已启用 agent 的存储库,聊天视图中会出现一个新的“委托给 coding agent”按钮。
状态跟踪
我们已进行改进,以通知并显著显示“Copilot on my behalf”查询中 coding agent 拉取请求的状态。数字徽章现在表示新更改。

会话日志
您现在可以在 VS Code 中直接查看 coding agent 会话的会话日志。这使您能够看到 coding agent 执行的操作历史记录,包括代码更改和工具使用情况。

对 #activePullRequest 工具的增强
#activePullRequest 工具会返回有关拉取请求的信息,例如其标题、描述和状态,供聊天使用,现在您还可以使用它来获取 coding agent 会话信息。
此工具在通过 coding agent 体验创建拉取请求时会自动附加到聊天中,因此您可以保持上下文并根据需要继续处理拉取请求。
Python
Python 环境扩展改进
Python Environments 扩展 在此版本中获得了一些改进。
- 我们已针对 Poetry 版本大于 2.0.0 的情况改进了终端激活支持。
- 您现在可以使用“快速创建”环境创建选项在同一工作区中设置多个唯一命名的虚拟环境。
- 生成的
.venv文件夹现在默认会被 git 忽略。 - 我们改进了环境删除过程。
Python Environments 包含在 Python 扩展中。
我们开始将 Python Environments 扩展 作为 Python 扩展的可选依赖项进行推广。这意味着您现在可能会开始看到 Python Environments 扩展与 Python 扩展一起自动安装,类似于 Python Debugger 和 Pylance 扩展。这种受控推广使我们能够在普遍可用之前收集早期反馈并确保可靠性。
Python Environments 扩展包括我们迄今为止引入的所有核心功能,包括:通过“快速创建”进行一键式环境设置、自动终端激活(通过“python-envs.terminal.autoActivationType”设置)以及所有支持的环境和包管理 UI。
要在推广期间使用 Python Environments 扩展,请确保已安装该扩展,并在 VS Code settings.json 文件中添加以下内容。
"python.useEnvironmentsExtension": true
禁用 Python 3.13 的 PyREPL
我们已禁用 Python 3.13 及更高版本的 PyREPL,以解决交互式终端中的缩进和光标问题。有关更多详细信息,请参阅禁用 PyREPL (>= 3.13)。
Pylance MCP 工具 (实验性)
Pylance 扩展 现在包含一些实验性的 MCP 工具,这些工具提供对 Pylance 的文档、导入分析、环境管理等的访问。这些工具目前可在 Pylance 预发布版本中使用,并且仍处于早期开发阶段。虽然它们提供了新功能,但我们知道今天直接调用它们可能会很困难。我们正在积极努力使这些工具在未来的更新中更易于使用和更有价值。欢迎您在 pylance-release 存储库中提供反馈,以便我们继续改进体验。
GitHub 身份验证
重新设计的 GitHub 登录流程
本次更新,我们重新设计了 GitHub 登录流程,默认使用回环 URL 流程,而不是使用 vscode:// 协议 URL 的流程。此更改旨在提高登录流程的可靠性,并确保其在所有平台上都能正常工作,包括那些不支持自定义 URL 方案的平台。
当您使用 GitHub 登录时,您现在将被重定向到一个看起来像 https://:PORT/ 的回环 URL。这使得登录流程能够在不依赖自定义 URL 方案的情况下成功完成。也就是说,一旦您到达回环 URL,您仍然会被重定向到一个 vscode:// URL 以返回 VS Code,但登录流程成功完成并不需要此 URL 解析。
换句话说,我们获得了两全其美的优势:一个在所有平台上都可靠的登录流程,以及一个使用 vscode:// URL 方案返回 VS Code 的方式。
同时,我们还对这个登录页面进行了重新设计。在未来的迭代中,我们将把这种新设计应用于其他登录体验。

扩展开发
使用 vscode.openFolder 命令时允许打开文件
调用 vscode.openFolder 命令的扩展现在可以将 filesToOpen?: UriComponents[] 作为选项传递,以选择要在打开的工作区窗口中打开的文件。
示例
vscode.commands.executeCommand('vscode.openFolder', <folder uri>, { filesToOpen: [ /* files to open */]});
提议的 API
工程
使用 esbuild 进行 CSS 最小化
VS Code 长期以来一直使用 esbuild 来打包和最小化 JavaScript 源文件。现在我们也使用 esbuild 来打包和最小化我们的 CSS 文件。
使用 tsconfig.json 进行严格的层检查
我们现在使用多个 tsconfig.json 文件来确保我们的源代码符合我们的目标环境规则。我们的 CI 会运行 npm run valid-layers-check,如果例如在仅存在于 node 运行时中的 browser 层中添加了类型,则构建将失败。
使用 vscode-bisect 进行健全性测试
vscode-bisect 项目已经存在很长时间,用于查找 VS Code 构建中的回归(就像 git bisect 之于 git 一样)。我们添加了一个新的 --sanity 选项,允许我们快速进行健全性检查,这是我们在发布新版本之前必须进行的。
值得注意的修复
- vscode-copilot-release#6073 - Agent 不应在 Windows PowerShell 中建议
&&
感谢
最后但同样重要的是,向 VS Code 的贡献者们致以衷心的感谢。
问题跟踪
对我们问题跟踪的贡献
- @albertosantini (Alberto Santini)
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
- @tamuratak (Takashi Tamura)
拉取请求
对 vscode 的贡献
- @a-stewart (Anthony Stewart):修复 asyncDataTree.test.ts 中的类型 PR #209394
- @charles7668 (charles):修复 #215925 PR #219321
- @chengluyu (Luyu Cheng):将
font-variation-settings应用于建议小部件 (修复 #199954) PR #200000 - @DrSergei:改进调试适配器功能检查 PR #250779
- @emmanuel-ferdman (Emmanuel Ferdman):修复 launch.json 引用 PR #250187
- @Enzo-Nunes (Enzo Nunes):修复 makefile 的行注释操作 (修复 #234464) PR #243283
- @Gallaecio (Adrián Chaves):修复拼写错误 (an language model call → a language model call) PR #252202
- @ghLcd9dG (Liu):更新 copyFiles.ts PR #250773
- @heoh (HeoHeo):修复 markdown 预览在 EOF 处滚动卡顿 (修复 #249278) PR #251228
- @hyrious (hyrious):修复:远程内置扩展的缺失翻译 PR #249430
- @jeanp413 (Jean Pierre)
- 在内置扩展中,不要检查 navigator 来检测 Web 环境 PR #251688
- 修复重命名自定义编辑器时出现的“Assertion Failed: Argument is undefined or null”错误 PR #252071
- @JJJJJJ-git:修复 ChatService 撤销错误 PR #253478
- @liuxingbaoyu:修复:PowerShell 在用户名包含 Unicode 时无法工作 PR #251534
- @matthew-godin:修复 patternIndices 拼写错误 PR #250085
- @mohiuddin-khan-shiam (S. M. Mohiuddin Khan Shiam):修复 version_manager.rs 中错误的 SHA-1 commit 正则表达式 PR #251329
- @notoriousmango (Seong Min Park)
- feat:在 webview 主题中添加字体连字 PR #250998
- feat:为上次运行失败的测试添加重新运行和调试操作 PR #251679
- @raffaeu (Raffaele Garofalo):重构编辑器粘性滚动 PR #248131
- @RedCMD (RedCMD)
- 禁用调试扩展时的“安装文件夹”横幅警告 PR #244305
- TypeScript 限制注释在注释体内的 OnEnterRules PR #251692
- @ssigwart (Stephen Sigwart):更新 PHP、JS 和 TS 的缩进 PR #251465
- @Sublimeful (Jian Qiang Wu):当没有终端时实现 Terminal: Run Recent Command PR #250799
- @tmm1 (Aman Karmani):[工程] 删除对 Swc 转译的死引用 PR #252375
- @UziTech (Tony Brix):feat:添加鼠标中键滚动 PR #245882
- @yiliang114 (易良):修复 #250737,Notebook findWidget 中匹配计数结果溢出 PR #250738
对 vscode-copilot-chat 的贡献
- @caohy1988 (Hai-Yuan Cao):更新 agent 模式的摘要提示 PR #13
- @CharlesCNorton:更新 README.md PR #54
- @gmacario (Gianpaolo Macario):docs(CONTRIBUTING):同步目录 PR #79
- @moonboxing (ASSEMAR MOHAMED):在 pylint 删除后更新 devcontainer-lock PR #76
对 vscode-json-languageservice 的贡献
- @aedenmurray (Aeden Murray):feat:通知无效的 RegExp 模式 PR #261
对 vscode-pull-request-github 的贡献
- @dyhagho (Dyhagho Briceño):修复:当设置了
github-enterprise.uri时允许 Github.com 身份验证 PR #7002
对 vscode-ripgrep 的贡献
- @benz0li (Olivier Benz):添加 linux riscv64 目标 PR #73
- @Vector341:修复无效下载崩溃安装 PR #66
对 vscode-test 的贡献
- @coliff (Christian Oliff):更新 .npmignore PR #312
对 language-server-protocol 的贡献
- @billybonks (Sebastien Stettler):修复:提高注释的可读性,PR #2155
- @rcjsuen (Remy Suen):将 Docker Language Server 添加到列表中 PR #2153
- @yangdanny97 (Danny Yang):将 Pyrefly 添加到语言服务器列表 PR #2160
对 monaco-editor 的贡献
- @Ho1yShif (Shifra Williams):添加 snowflake sql 关键字 PR #4915
对 ripgrep-prebuilt 的贡献