参加你附近的 ,了解 VS Code 中的 AI 辅助开发。

2025 年 6 月(版本 1.102)

发布日期:2025 年 7 月 9 日

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

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

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

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


欢迎使用 Visual Studio Code 2025 年 6 月版。此版本包含许多更新,我们希望您会喜欢,其中一些主要亮点包括:

  • 聊天

  • MCP

    • MCP 支持现已在 VS Code 中正式推出(显示更多)。
    • 通过 MCP 视图和库轻松安装和管理 MCP 服务器(显示更多)。
    • MCP 服务器作为配置文件和设置同步中的一流资源(显示更多)。
  • 编辑器体验

    • 将任务委托给 Copilot 编码代理,让它在后台处理(显示更多)。
    • 中键点击时滚动编辑器(显示更多)。

如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新Insiders:想尽快尝试新功能吗?您可以下载每晚Insiders版本并尽快尝试最新更新。

聊天

Copilot Chat 已开源

我们很高兴地宣布,我们已将 GitHub Copilot Chat 扩展开源!源代码现已在 microsoft/vscode-copilot-chat 下根据 MIT 许可证提供。

这标志着我们在透明度和社区协作方面迈出了重要一步。通过开源该扩展,我们使社区能够:

  • 直接贡献到 VS Code 中 AI 驱动的聊天体验的开发
  • 理解聊天模式、自定义指令和 AI 集成的实现
  • 在我们工作的基础上创建更好的 AI 开发工具
  • 参与塑造 AI 辅助编码的未来

您可以探索存储库,查看 代理模式内联聊天MCP 集成 等功能是如何实现的。我们欢迎社区的贡献、反馈和协作。

要了解有关此里程碑以及我们对开源 AI 编辑器工具的更广阔愿景的更多信息,请阅读我们的详细博客文章:开源 AI 编辑器 - 首个里程碑

聊天模式改进

上一个里程碑,我们预览了自定义聊天模式。除了内置的“询问”、“编辑”和“代理”聊天模式外,您还可以定义自己的聊天模式,其中包含特定的指令和一套允许的工具,您希望 LLM 在回复请求时遵循这些指令和工具。

此里程碑,我们在此领域进行了多项改进和错误修复。

配置语言模型

应大众要求,您现在还可以指定聊天模式应使用哪种语言模型。将 model 元数据属性添加到您的 chatmode.md 文件中,并提供模型标识符(我们为模型信息提供 IntelliSense)。

Screenshot that shows the IntelliSense for the model metadata property in chat mode file.

改进的编辑支持

聊天模式提示指令文件的编辑器现在支持所有受支持元数据属性的完成、验证和悬停。

Screenshot that shows the hover information for tools.

Screenshot that shows the model diagnostics when a model is not available for a specific chat mode.

聊天视图中的齿轮菜单

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

Screenshot that shows the Configure Chat menu in the Chat view.

选择模式会显示所有当前安装的自定义模式,并允许您打开、创建新模式或删除模式。

您现在可以从外部链接(例如 gist 或我们的 awesome-copilot 社区存储库)导入聊天模式、可重用提示和指令文件。例如,以下链接将导入 Burke 的 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 文件之前查找代码样式规则

Screenshot showing loading instruction files on demand.

编辑以前的请求(实验性)

您现在可以单击以前的请求来修改文本内容、附加上下文、模式和模型。提交此更改后,这将删除所有后续请求,撤消所做的任何编辑,并在聊天中发送新请求。

我们将对编辑请求的不同入口点进行受控推出,这将有助于我们收集关于偏好编辑和撤消流程的反馈。但是,用户可以使用实验性 chat.editRequests 设置来设置其首选模式

  • chat.editRequests.inline:将鼠标悬停在请求上并选择文本以开始内联编辑请求。
  • chat.editRequests.hover:将鼠标悬停在请求上以显示一个工具栏,其中包含一个按钮,用于开始内联编辑请求。
  • chat.editRequests.input:将鼠标悬停在请求上以显示一个工具栏,该工具栏将在聊天底部的输入框中开始编辑。

终端自动批准(实验性)

代理模式现在有一种在终端中自动批准命令的机制。以下是使用默认设置的演示

目前有两个设置:允许列表和拒绝列表。允许列表是命令前缀或正则表达式的列表,当匹配时,允许命令在未经明确批准的情况下运行。例如,以下将允许任何以 npm run test 开头的命令以及精确地 git statusgit log 运行

"github.copilot.chat.agent.terminal.allowList": {
  "npm run test": true,
  "/^git (status|log)$/": true
}

这些设置跨设置范围合并,因此您可以拥有一组用户批准的命令以及工作区特定的批准命令。

对于链式命令,我们尝试根据 shell 检测这些情况,并要求所有子命令都获得批准。因此,对于 foo && bar,我们检查 foobar 都允许,只有在那时它才能在未经批准的情况下运行。我们还尝试检测内联命令,例如 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
}

由于我们从工作区信任中获得了针对提示注入的保护,我们实现此功能时在安全性方面采取的理念是在允许列表中包含一小组无害命令,并在拒绝列表中包含一组特别危险的命令,以防它们设法通过。允许列表默认为空,因为我们仍在考虑默认值应该是什么,但以下是我们的想法

  • 允许列表:echocdlscatpwdWrite-HostSet-LocationGet-ChildItemGet-ContentGet-Location
  • 拒绝列表:rmrmdirdelkillcurlwgetevalchmodchownRemove-Item

我们希望为此功能添加的两个主要部分是 UI 入口点,以便更轻松地将新命令添加到列表中(#253268),以及允许 LLM 评估命令安全性的选择加入选项(#253267)。我们还计划在下一次发布中移除这些设置的 github.copilot. 前缀(#253314)并将它们合并在一起(#253472),然后再将其设为预览设置。

终端命令简化

代理模式有时希望运行带有 cd 语句的命令,以防万一。我们现在在它匹配当前工作目录时检测到这种情况,并简化运行的命令。

Screenshot of the terminal, asking to run  only runs  when the current working directory already matches.

代理对任务和终端的感知

代理模式现在可以识别它创建的后台终端以及正在主动运行的任务。代理可以使用新的 GetTaskOutput 工具读取任务输出,这有助于防止运行重复任务并改善工作区上下文。

Screenshot of VS Code window showing two build tasks running in the terminal panel. The left terminal displays several errors. The chat agent replies to describe status of my build tasks with a summary of each task's output.

最大化聊天视图

您现在可以将辅助侧边栏最大化以跨越编辑器区域并隐藏主侧边栏和面板区域。VS Code 会记住此状态,并在您打开编辑器或视图时恢复聊天视图。

您可以使用关闭按钮旁边的新图标切换最大化状态,或使用命令面板中的新命令 workbench.action.toggleMaximizedAuxiliaryBar

代理模式徽章指示器

当窗口未聚焦且代理需要用户确认才能继续时,我们现在会在 Dock 中的应用程序图标上显示一个徽章。徽章将在触发它的相关窗口获得焦点后立即消失。

Screenshot of the VS Code dock icon showing an agent confirmation as a badge.

您可以通过 chat.notifyWindowOnConfirmation 设置启用或禁用此徽章。

从命令行启动聊天

VS Code CLI 中添加了一个新的子命令 chat,使您能够在当前工作目录中启动聊天会话并提供提示。

基本语法是 code chat [options] [prompt],选项可以是以下任何一种

  • -m --mode :用于聊天会话的模式。可用选项:“ask”、“edit”、“agent”或自定义模式的标识符。默认为“agent”
  • -a --add-file :将文件作为上下文添加到聊天会话
  • --maximize:最大化聊天会话视图
  • -r --reuse-window:强制将最后活动的窗口用于聊天会话
  • -n --new-window:强制为聊天会话打开一个空窗口

支持从标准输入读取,前提是在末尾传入 -,例如 ps aux | grep code | code chat -

Fetch 工具支持非 HTTP URL

我们发现,有时模型希望使用非 HTTP URL 调用 Fetch 工具,例如 file:// URL。Fetch 工具现在支持这些 URL,并返回 URL 处文件或资源的内容,而不是禁止它们。图像也受支持。

更清晰的语言模型访问管理

我们改进了管理扩展对扩展提供的语言模型访问的 UX。以前,您会在“账户”菜单中看到一个名为账户名(GitHub Copilot Chat)的项,这与 GitHub Copilot Chat 使用的账户无关。相反,它允许您管理哪些扩展可以访问 Copilot Chat 提供的语言模型。

为了使此更清晰,我们已删除账户名(GitHub Copilot Chat)项,并将其替换为名为管理语言模型访问...的新项。此项会打开一个快速选择器,使您能够管理哪些扩展可以访问 GitHub Copilot Chat 提供的语言模型。

Screenshot that shows the language model access Quick Pick.

我们认为这更清晰...也就是说,在未来的版本中,我们将探索对语言模型进行更精细的访问控制(例如,只允许特定模型,而不是扩展提供的所有模型),敬请期待。

读取聊天请求

由于聊天扩展本身是开源的,您现在可以访问我们内部使用了一段时间的调试工具之一。要轻松查看 Copilot Chat 发出的所有请求的详细信息,请运行命令“显示聊天调试视图”。这将显示一个树形视图,其中包含每个请求的条目。您可以查看发送给模型的完整提示、启用的工具、响应以及其他关键详细信息。您可以右键单击 >“导出为...”来保存请求日志。

该视图还包含工具调用的条目,以及在简易浏览器中打开的 prompt-tsx 调试视图。

🚨 注意:此日志在排查问题时非常有用,如果您在提交有关代理行为的问题时共享此日志,我们将不胜感激。但是,此日志可能包含个人信息,例如您的文件内容或终端输出。在与他人共享之前,请仔细审查内容。

编辑工具改进

此版本包含对 GPT-4 模型和 Sonnet 模型使用的编辑工具的可预测性和可靠性的几项更改。在此版本中,您应该会看到更可靠的编辑行为,我们将在未来版本中继续改进这些工具。

MCP

VS Code 中 MCP 支持正式发布

在过去的几个月里,我们一直致力于扩展 VS Code 中的 MCP 支持,并支持规范中的全部 MCP 功能。从本版本开始,VS Code 中的 MCP 支持现已正式发布!

此外,组织现在可以通过 GitHub Copilot 策略控制 MCP 服务器的可用性。在 GitHub Copilot 文档中了解更多关于管理企业中的 Copilot 策略和功能的信息。

您可以通过安装我们精选列表中的一些流行 MCP 服务器来开始使用。了解更多关于在 VS Code 中使用 MCP 服务器以及如何使用它们来扩展代理模式的信息。

Screenshot that shows the MCP Servers page.

如果您想构建自己的 MCP 服务器,请查看我们的MCP 开发者指南,了解如何利用 VS Code 中的 MCP 功能的更多详细信息。

支持引导

最新的 MCP 规范增加了对引导的支持,作为 MCP 服务器向 MCP 客户端请求输入的一种方式。最新版本的 VS Code 采用了此规范并包含对引导的支持。

MCP 服务器发现与安装

扩展视图中新的MCP 服务器部分包含欢迎内容,直接链接到我们精选列表中的热门 MCP 服务器。访问网站以探索可用的 MCP 服务器,并在任何 MCP 服务器上选择安装。这会自动启动 VS Code 并打开 MCP 服务器编辑器,显示服务器的自述文件和清单信息。您可以查看服务器详细信息并选择安装以将服务器添加到您的 VS Code 实例。

安装后,MCP 服务器会自动出现在您的扩展视图的MCP 服务器 - 已安装部分下,并且其工具在聊天视图的工具快速选择器中可用。这使得验证您的 MCP 服务器是否正常工作并立即访问其功能变得容易。

MCP 服务器管理视图

扩展视图中新增的MCP 服务器 - 已安装视图可让您轻松监控、配置和控制已安装的 MCP 服务器。

Screenshot showing the MCP Servers management view with installed servers.

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

Screenshot showing the context menu actions for an MCP server.

  • 启动服务器 / 停止服务器 / 重新启动服务器:控制服务器的运行状态
  • 断开账户:从服务器移除账户访问权限
  • 显示输出:查看服务器的输出日志以进行故障排除
  • 显示配置:打开服务器的运行时配置
  • 配置模型访问:管理服务器可以访问哪些语言模型
  • 显示采样请求:查看用于调试的采样请求
  • 浏览资源:探索服务器提供的资源
  • 卸载:从您的 VS Code 实例中移除服务器

当您选择一个已安装的 MCP 服务器时,VS Code 会打开 MCP 服务器编辑器,显示服务器的自述文件详细信息、清单及其运行时配置。这提供了服务器功能和当前设置的概览,使其易于理解服务器的功能和配置方式。

Screenshot showing the MCP server editor with runtime configuration.

MCP 服务器 - 已安装视图还提供了一个浏览 MCP 服务器...操作,可直接带您到社区网站,使服务器发现始终可在 VS Code 内部访问。

Screenshot that shows the Browse MCP Servers action in the MCP Servers view.

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 服务器配置在无需任何手动干预的情况下继续工作,同时提供新架构的增强管理功能。

开发容器支持 MCP 配置

开发容器配置 devcontainer.json 和开发容器功能配置 devcontainer-feature.json 在路径 customizations.vscode.mcp 支持 MCP 服务器配置。创建开发容器时,收集到的 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 快速选择器:显示 MCP 快速选择菜单中“断开账户”操作的屏幕截图。

当账户被其他 MCP 服务器或扩展使用时,会显示断开连接操作;当账户仅由 MCP 服务器使用时,会显示注销操作。注销操作会从 VS Code 中完全移除账户,而断开连接操作只会从 MCP 服务器中移除对账户的访问权限。

辅助功能

保留编辑器内的所有编辑

以前,要接受所有编辑,焦点必须在聊天视图中。现在,当焦点在编辑器中时,您可以运行命令保留所有编辑⌥⌘Y(Windows、Linux Ctrl+Alt+Y)。

需要用户操作的声音

我们已经微调了辅助功能信号,以指示聊天何时需要用户操作,并将默认值设置为 auto,以便屏幕阅读器用户将听到此信号。您可以使用 accessibility.signals.chatUserActionRequired 设置配置此行为。

聊天中发生渲染错误时发出警报

以前,屏幕阅读器用户在发生聊天渲染错误时不会收到警报。现在,用户会收到此信息的警报,并且还可以通过键盘将其聚焦。

代码编辑

中键点击滚动

设置editor.scrollOnMiddleClick

只需单击或按住鼠标中键(滚轮)并移动即可滚动编辑器。

激活后,光标会变为平移图标,然后向上或向下移动鼠标会使编辑器在该方向上平滑滚动。滚动速度由您将鼠标从初始点击点移动的距离决定。释放鼠标中键或再次单击它可停止滚动并返回标准光标。

已知冲突

启用此功能可能会干扰与鼠标中键绑定的其他操作。例如,如果启用了列选择(editor.columnSelection),按住鼠标中键会选择文本。同样,在 Linux 上,选择剪贴板(editor.selectionClipboard)会在单击鼠标中键时粘贴剪贴板内容。

为了避免这些冲突,请一次只启用其中一个设置。

暂停代码完成

您现在可以使用新的暂停功能暂时暂停内联建议和下一编辑建议(NES)。当您想集中注意力而不受建议干扰时,这会很有帮助。

要暂停建议,请在状态栏中选择 Copilot 面板,或从命令面板运行暂停内联建议命令,然后从下拉菜单中选择持续时间。在暂停期间,不会出现内联建议或 NES。

Screenshot showing the Copilot dashboard with the snooze button at the bottom.

您还可以分配自定义键绑定,通过将所需的持续时间作为参数传递给命令来快速暂停建议特定持续时间。例如

{
  "key": "...",
  "command": "editor.action.inlineSuggest.snooze",
  "args": 10
}

编辑器体验

Windows 强调色

设置window.border

如果 Windows 设置中启用了“在标题栏和窗口边框上显示强调色”,则 VS Code 在 Windows 上现在支持使用强调色作为窗口框架边框。

Screenshot of the VS Code window with a red accent color border.

新的 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)接受建议。您可以选择 partialalwaysnever 模式来控制如何选择和接受建议。

默认值为 partial,这意味着 Tab 接受建议直到发生导航。

Screenshot showing the first terminal suggestion can be accepted with Tab.

了解更多

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

Screenshot showing the Learn More action appears in the terminal suggest control status bar.

多命令支持

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

Screenshot showing the VS Code terminal showing a multi-command line with git commit and git push, and the terminal suggest widget displaying suggestions for pull, push, and other git commands.

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

Screenshot showing the terminal suggest shows the symlink's path -> real path.

改进排序

我们通过多种方式改进了排序,为您提供最相关的建议。例如,将 mainmaster 的优先级置于其他分支之上。

Screenshot showing the terminal suggest boosts main and master compared to other branch suggestions.

Git Bash 改进

我们现在正确支持 Git Bash 路径完成,用于文件夹和文件。此外,我们还会来源内置命令并将其作为建议呈现。

Screenshot showing a Git Bash terminal with suggestions for builtin functions like cat, cp, and curl.

对扩展的贡献

GitHub 拉取请求

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

GitHub Pull Requests 扩展与 Copilot 编码代理之间进行了更深层次的集成,允许您直接从 VS Code 启动、查看和管理编码代理会话。

这些功能要求您的工作区已打开到已启用 Copilot 编码代理的存储库。

查看扩展 0.114.0 版本的更新日志,了解该版本中的所有内容。

启动编码代理会话(预览)

通过在聊天中调用 #copilotCodingAgent 工具,请求 Copilot 在后台继续本地更改。

此工具会自动将待处理的更改推送到远程分支,并从该分支以及用户指令启动编码代理会话。

Screenshot showing handing off a session to Copilot coding agent

实验性: 可以通过 githubPullRequests.codingAgent.uiIntegration 设置启用更深层次的 UI 集成。启用后,对于已启用代理的存储库,聊天视图中会出现一个新的委托给编码代理按钮。

状态追踪

我们改进了通知功能,并在Copilot 代我执行查询中显著显示编码代理拉取请求的状态。现在,数字徽章会指示新的更改。

Screenshot showing status of multiple coding agent pull requests

会话日志

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

Screenshot showing the session log of a coding agent session.

#activePullRequest 工具增强功能

#activePullRequest 工具返回有关拉取请求的信息,例如其标题、描述和状态,以用于聊天,现在您还可以使用它来获取编码代理会话信息。

通过编码代理体验创建拉取请求时,此工具会自动附加到聊天中,因此您可以保持上下文并在需要时继续处理拉取请求。

Python

Python 环境扩展改进

Python 环境扩展在此版本中获得了多项改进

  • 我们改进了对 Poetry 2.0.0 以上版本的终端激活支持
  • 您现在可以使用快速创建环境选项来设置多个虚拟环境,这些环境在同一工作区中具有唯一的名称
  • 生成的 .venv 文件夹现在默认被 git 忽略
  • 我们改进了环境删除过程

Python 环境作为 Python 扩展的一部分包含在内

我们开始将 Python 环境扩展作为 Python 扩展的可选依赖项推出。这意味着您现在可能会看到 Python 环境扩展与 Python 扩展一起自动安装,类似于 Python 调试器和 Pylance 扩展。这种受控推出使我们能够在全面推出之前收集早期反馈并确保可靠性。

Python 环境扩展包括我们迄今为止引入的所有核心功能,包括:使用快速创建一键式环境设置、自动终端激活(通过“python-envs.terminal.autoActivationType”设置),以及所有受支持的环境和包管理 UI

要在推出期间使用 Python 环境扩展,请确保已安装该扩展,并将以下内容添加到您的 VS Code settings.json 文件中

"python.useEnvironmentsExtension": true

Python 3.13 禁用 PyREPL

我们已禁用 Python 3.13 及更高版本的 PyREPL,以解决交互式终端中的缩进和光标问题。有关更多详细信息,请参阅禁用 PyREPL for >= 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,但这不需要解析即可成功完成登录流程。

换句话说,我们两全其美:一个在所有平台上都可靠的登录流程,以及一个使用 vscode:// URL 方案返回 VS Code 的流程。

在此过程中,我们还为这个着陆页进行了“重新粉刷”。在未来的迭代中,我们将把这种新设计应用于其他登录体验。

Screenshot showing the redesigned authentication landing page.

扩展开发

允许使用 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 bisectgit 所做的事情)。我们添加了一个新的 --sanity 选项,允许我们快速通过我们的健全性检查,这在我们发布新构建之前是强制性的。

值得注意的修复

感谢

最后但同样重要的是,向 VS Code 的贡献者们致以衷心的感谢

问题跟踪

对我们问题跟踪的贡献

拉取请求

vscode 的贡献

vscode-copilot-chat 的贡献

vscode-json-languageservice 的贡献

vscode-pull-request-github 的贡献

vscode-ripgrep 的贡献

vscode-test 的贡献

language-server-protocol 的贡献

monaco-editor 的贡献

ripgrep-prebuilt 的贡献