https://code.visualstudio.com/updates/v1_101

本次更新看点速览

  • 通过 editor.find.findOnType 配置项可以控制是否有在输入字符时自动搜索。默认开启,现在可以通过此配置项关闭。

  • 源代码版本控制图支持变更文件列表/树。

聊天 (Chat)

  • 支持配置在 agent 使用的聊天工具集,可以定义 AI 使用的工具集列表。可选内置工具、MCP 提供的工具、插件提供的工具。通过 >Chat: Configure Tool Sets 命令创建和管理配置后缀为 .toolsets.jsonc 的配置文件,支持用户和工作区维度配置。在聊天中通过 #工具集名 方式引用,详见: 官方文档

    {
      "gh-news": {
        "tools": ["list_notifications", "dismiss_notification", "get_notification_details"],
        "description": "Manage GH notification",
        "icon": "github-project"
      }
    }

    image

  • 支持MCP 提示词模板 (即将 MCP server 生成的提示词模板给大模型)。在聊天中可通过 /mcp.servername.promptname 方式引用。

  • 支持MCP 资源(即从 MCP server 读取资源给大模型)。在聊天中可通过 Add Context... 选择添加 MCP 资源给大模型。

  • 实验性的支持 MCP Sampling(即 MCP server 调用大模型接口)。

  • 支持 MCP Auth (2025-3-26 specDraft spec),详见: 原文

  • 支持 MCP 开发者模式,只是 debug 方式启动服务(断点),支持 node 和 python。详见:原文

    {
    "servers": {
        "gistpad": {
        "command": "node",
        "args": ["build/index.js"],
    +     "dev": {
    +       "watch": "build/**/*.js",
    +       "debug": { "type": "node" }
    +     },
    
  • 聊天 UX 提升。

    • 改进用户消息展示,使之跟容易和 AI 回复区分。
    • 悬浮到用户消息上,展示叉号,可以快速删除这个消息记录(此外也可以单击选中后,可以按 ⌘Backspace 快捷键删除)
  • 更有效的应用编辑:

    • 在重写编辑时,禁用自动保存和 squiggles。
    • 保持和回滚按钮,会话快捷键使用 ⌘Y⌘N;文件中使用 ⇧⌘Y⇧⌘N
  • 隐式文件上下文改进:

    • 聊天上下文文件可以通过叉号去除,焦点在聊天框上时,可以通过 shift + tab 切换焦点,按回车删除。
    • 切换编辑器标签后,聊天的隐式上下文提示也会变且逻辑和编辑器类似。
  • 修复任务配置错误。配置任务和问题匹配者可能很棘手。在任务配置中存在错误以快速有效地解决时,将使用GitHub Copilot Action进行修复。

  • (预览) 自定义聊天模式,支持在 Chat、Edit 和 Agent 之外自定义模式。可以通过 Markdown 文件配置描述,工具集以及提示词。更多详见:原文

  • 当聊天 Agent 执行任务时,它现在知道问题匹配者确定的任何错误或警告。这种诊断上下文使聊天代理可以在出现的问题上更聪明地做出反应。

  • 终端 pwd 上下文。当代理模式打开终端和外壳集成活动时,聊天代理会知道当前的工作目录(CWD)。这使得更准确,上下文感知的命令支持。

  • 打开 Chat 浮动窗口会新建一个会话,并支持通过按钮放回主窗口。

    image

  • fetch 工具添加二次确认,以避免潜在提示词注入问题。

    image

  • Agent 模式支持自由启用禁用工具列表,通过聊天框的设置图标。

    image

  • 选择 HTML 元素给聊天。

    image

无障碍 (Accessibility)

编辑体验 (Editor Experience)

  • 通过 editor.find.findOnType 配置项可以控制是否有在输入字符时自动搜索。默认开启,现在可以通过此配置项关闭。
  • 新增 window.menuStyle 配置项,配置菜单的样式,可选项如下:

    • native:(默认值),由操作系统渲染。
    • custom:由 VSCode 渲染。
    • inherit:继承 window.titleBarStyle
  • Linux 中,点击 VSCode 图标,支持展示 Linux 系统的窗口选项菜单。

    image

  • 进程管理器使用浮动窗口架构,因此 VSCode Web 版也支持展示进程管理器。

  • 支持 Windows Shell (PowerShell) 环境变量探测。

  • 插件详情页,展示未在市场发布的扩展警告。

    image

  • (预览) 设置搜索建议,支持用自然语言,通过 AI 搜索配置项。可通过 workbench.settings.showAISearchToggle 配置项开启。

  • (预览) 键盘快捷键 AI 搜索,可通过 search.searchView.keywordSuggestions 配置项。

  • (预览) 通过 search.searchView.semanticSearchBehavior 配置项可以配置何时出发语义化搜索:

    • manual (默认): 仅在手动明确触发时使用语义化搜索 (⌘I)。
    • runOnEmpty: 仅在常规搜索位空时触发。
    • auto: 每次都进行语义化搜索。
  • (实验性) 编辑上下文 API,通过 editor.experimentalEditContextEnabled 可启用 Web 的 Edit Context API,可以解决很多输入法问题。

代码编辑 (Code Editing)

  • 改进了 NES 上个版本引入的包导入的准确性,并添加了 Python 的支持。

    image

    stable VSCode 可通过 github.copilot.nextEditSuggestions.fixes 配置项开启,目前在 VS Code Insiders 已默认启用,在 6 月版本将对 stable 版本默认启用

  • 通过改进的键盘导航,接受下一个编辑建议现在更加无缝。一旦接受建议,只要您还没有再次开始键入,就可以继续使用单个选项卡按下来接受后续建议。一旦开始键入,请按选项卡首先将光标移至下一个建议,然后再接受它。

笔记本 (Notebooks)

源代码版本控制 (Source Control)

  • Github pull request 扩展支持让 Copilot coding agent 处理 PR 和 Issue:

    • Assign to Copilot: 将 PR 和 Issue 分配给 Copilot 处理。
    • Copilot on My Behalf: 快速查看 Copilot 为你工作的 PR。
    • PR view:查看 Copilot coding agent 编码状态 ,并在浏览器中打开会话详细信息。

      image

  • 源代码版本控制图支持变更文件列表/树。

  • 添加 git 历史到聊天上下文。可通过源代码版本控制图右击选择 Copilot,点击将历史记录项添加到聊天。

    image

任务 (Tasks)

  • 实例策略,详见:原文

终端 (Terminal)

远程开发 (Remote Development)

  • SSH 预连接脚本
  • 远程资源管理器的改进

详见: 更新日志

贡献到扩展 (Contributions to extensions)

  • Python

    • Python 给 Copilot Agent 贡献了,“Get information for a Python Environment”, “Get executable information for a Python Environment”, “Install Python Package” and “Configure Python Environment” 工具。可通过 #getPythonEnvironmentInfo#installPythonPackage 注入 PE。

    • Python Environments 支持 从模板创建项目。

    • Python Environments 支持 PyEnv 和 Poetry。

  • GitHub Pull Requests 略,详见:原文

扩展制作 (Extension Authoring)

  • MCP extension APIs, 支持通过 VSCode 扩展贡献 MCP Server。
  • Extension 打包时扫描如 .env 文件的秘钥,避免秘钥泄密。
  • ⚠️ Breaking change ⚠️: extension host 从 v20 升级到 v22。提供了全局的 navigator 对象。此更改可能会引入破坏的变化,如依靠 navigator 对象的存在来检测是否是 Web 环境。为了兼容性,目前 VSCode 将 navigator 设置为 undefined。详见:原文

API 提案 (Proposed APIs)

Authentication Providers: Supported Authorization Servers for MCP

详见: 原文

工程 (Engineering)

  • 更新到 Electron 35, Chromium 134.0.6998.205 和 Node.js 22.15.1。
  • Adopting ESM in a real-world extension, 详见: 原文