vscode-2025年3月-v1.99更新说明

1- 2025 年 3 月 (版本 1.99)

下载:


欢迎阅读 Visual Studio Code 2025 年 3 月的发布说明。此版本包含许多我们希望您会喜欢的更新,其中一些关键亮点包括:

  • Agent 模式
    • Agent 模式已在 VS Code 稳定版 (Stable) 中可用。通过设置 chat.agent.enabled 来启用 (了解更多…)。
    • 使用模型上下文协议 (Model Context Protocol, MCP) 服务器工具扩展 Agent 模式 (了解更多…)。
    • 在 Agent 模式下尝试新的内置工具,用于获取网页内容、查找符号引用和进行深度思考 (了解更多…)。
  • 代码编辑
    • 后续编辑建议 (Next Edit Suggestions, NES) 功能现已正式发布 (了解更多…)。
    • 在编辑器中应用 AI 编辑时,减少诊断事件等干扰 (了解更多…)。
  • 聊天 (Chat)
    • 使用您自己的 API 密钥在聊天中访问更多语言模型 (预览) (了解更多…)。
    • 从统一的聊天体验中轻松切换提问 (Ask)、编辑 (Edit) 和 Agent 模式 (了解更多…)。
    • 通过即时远程工作区索引,体验更快、更准确的工作区搜索 (了解更多…)。
  • Notebook 编辑
    • 通过支持编辑 (Edit) 和 Agent 模式,像编辑代码文件一样轻松创建和编辑 Notebook (了解更多…)。

如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的 更新 页面。
**Insiders 用户:**想尽快尝试新功能吗?您可以下载每夜构建的 Insiders 版本,并在功能可用时立即体验最新更新。

1.1- 聊天 (Chat)

1.1.1- Agent 模式已在 VS Code 稳定版中可用

设置: chat.agent.enabled

我们很高兴地宣布,Agent 模式已在 VS Code 稳定版 (Stable) 中可用!通过设置 chat.agent.enabled 来启用它。随着我们逐步向所有用户默认启用此功能,未来将无需手动设置。

请查看 Agent 模式文档 或在聊天视图的聊天模式选择器中选择 Agent 模式。

截图显示聊天视图,高亮显示聊天模式选择器中选定的 Agent 模式。

1.1.2- 模型上下文协议 (MCP) 服务器支持

此版本在 Agent 模式下支持 模型上下文协议 (Model Context Protocol, MCP) 服务器。MCP 提供了一种标准化的方法,供 AI 模型发现并与外部工具、应用程序和数据源进行交互。当您在 VS Code 中使用 Agent 模式输入聊天提示时,模型可以调用各种工具来执行任务,例如文件操作、访问数据库或检索 Web 数据。这种集成可实现更动态、更具上下文感知能力的编码辅助。

MCP 服务器可以在您的用户、远程或 .code-workspace 设置中的 mcp 部分进行配置,也可以在工作区的 .vscode/mcp.json 文件中配置。配置支持输入变量,以避免硬编码密钥和常量。例如,您可以使用 ${env:API_KEY} 引用环境变量,或使用 ${input:ENDPOINT} 在服务器启动时提示输入值。

您可以使用 MCP: 添加服务器 (MCP: Add Server) 命令从命令行调用快速设置 MCP 服务器,或使用 AI 辅助设置从发布到 Docker、npm 或 PyPI 的 MCP 服务器进行设置。

添加新的 MCP 服务器后,聊天视图中会显示一个刷新操作,可用于启动服务器并发现工具。之后,服务器会按需启动以节省资源。

视频: 演示在聊天中使用 Github MCP 工具
主题: Codesong (在 vscode.dev 上预览)

如果您已经在其他应用程序(如 Claude Desktop)中使用过 MCP 服务器,VS Code 会发现它们并提议为您运行。此行为可以通过设置 chat.mcp.discovery.enabled 来切换。

您可以使用 MCP: 列出服务器 (MCP: List Servers) 命令查看 MCP 服务器列表及其当前状态,并使用 Agent 模式下的 选择工具 (Select Tools) 按钮选择可在聊天中使用的工具。

您可以在 我们的文档 中阅读有关如何安装和使用 MCP 服务器的更多信息。

1.1.3- Agent 模式工具

本里程碑中,我们向 Agent 模式添加了几个新的内置工具。

1.1.3.1- 思考工具 (实验性)

设置: github.copilot.chat.agent.thinkingTool

Anthropic 研究 的启发,我们在 Agent 模式中添加了对思考工具的支持,该工具可以让任何模型在工具调用之间有机会进行思考。这提高了我们的 Agent 在产品内复杂任务以及 SWE-bench 评估中的性能。

1.1.3.2- 获取 (Fetch) 工具

使用 #fetch 工具将来自可公开访问网页的内容包含在您的提示中。例如,如果您想包含有关 MCP 等主题的最新文档,您可以要求获取 完整文档(该文档已方便 LLM 使用)并在提示中使用它。以下是其可能外观的视频:

视频: 演示使用 fetch 工具获取模型上下文协议文档

在 Agent 模式下,此工具会自动选取,但您也可以在其他模式下通过 #fetch 以及您希望获取的 URL 显式引用它。

此工具通过在无头浏览器窗口中渲染网页来工作,该页面的数据缓存在本地,因此您可以自由地要求模型一次又一次地获取内容,而无需重新渲染的开销。

请告诉我们您如何使用 #fetch 工具,以及您希望从中看到哪些功能!

获取 (Fetch) 工具的限制:

  • 目前,此浏览器窗口中禁用了 JavaScript。如果网站完全依赖 JavaScript 来呈现内容,则该工具将无法获取太多上下文。我们正在考虑更改此限制,并可能允许 JavaScript。
  • 由于无头特性,我们无法获取需要身份验证的页面,因为此无头浏览器存在于与您使用的浏览器不同的浏览器上下文中。可以考虑使用 MCP 引入为该目标专门构建的 MCP 服务器,或者通用的浏览器 MCP 服务器,例如 Playwright MCP 服务器

1.1.3.3- 用法 (Usages) 工具

#usages 工具是 " 查找所有引用 “、” 查找实现 " 和 " 转到定义 " 的组合。此工具可以帮助聊天了解有关函数、类或接口的更多信息。例如,聊天可以使用此工具查找接口的示例实现,或查找进行重构时需要更改的所有位置。

在 Agent 模式下,此工具会自动选取,但您也可以通过 #usages 显式引用它。

1.1.4- 使用 Agent 模式创建新工作区 (实验性)

设置: github.copilot.chat.newWorkspaceCreation.enabled

您现在可以在 Agent 模式 下搭建新的 VS Code 工作区。无论您是设置 VS Code 扩展、MCP 服务器还是其他开发环境,Agent 模式都可以帮助您初始化、配置和启动这些项目,并包含必要的依赖项和设置。

视频: 演示使用 Agent 模式创建一个新的 MCP 服务器,用于从 Hacker News 获取前 N 条新闻。

1.1.5- Agent 模式下的 VS Code 扩展工具

几个月前,我们最终确定了由 VS Code 扩展贡献的 语言模型工具 的扩展 API。现在,您可以在 Agent 模式下使用这些工具。

任何贡献到此 API 且在其配置中设置了 toolReferenceNamecanBeReferencedInPrompt 的工具,在 Agent 模式下都会自动可用。

通过在扩展中贡献工具,它可以访问完整的 VS Code 扩展 API,并且可以通过扩展市场轻松安装。

与来自 MCP 服务器的工具类似,您可以使用 Agent 模式下的 选择工具 (Select Tools) 按钮启用和禁用这些工具。请参阅我们的 语言模型工具扩展指南 来构建您自己的工具!

1.1.6- Agent 模式工具批准

作为完成用户提示任务的一部分,Agent 模式可以运行工具和终端命令。这功能强大,但也可能伴随风险。因此,您需要批准在 Agent 模式下使用工具和终端命令。

为了优化此体验,您现在可以在会话、工作区或应用程序级别记住该批准。这目前尚未对终端工具启用,但我们计划在未来版本中为终端开发批准系统。

截图显示 Agent 模式工具的“继续”按钮下拉选项,用于记住批准。

如果您想自动批准所有工具,现在可以使用实验性的 chat.tools.autoApprove 设置。这将自动批准所有工具,当语言模型希望运行工具时,VS Code 不会请求确认。请注意,启用此设置后,您将没有机会取消模型想要执行的潜在破坏性操作。

我们计划在未来扩展此设置,提供更精细的功能。

1.1.7- Agent 在 SWE-bench 上的评估

VS Code 的 Agent 在 swebench-verified 上使用 Claude 3.7 Sonnet 达到了 56.0% 的通过率,遵循了 Anthropic 关于 在 SWE-bench 环境中配置 Agent 以在无用户输入的情况下执行 的研究。我们的实验已转化为发布改进的 Agent 模式提示、工具描述和工具设计,包括适用于 Claude 3.5 和 3.7 Sonnet 模型的新的文件编辑工具。

1.1.8- 统一的聊天视图

在过去的几个月里,我们有一个用于向语言模型提问的 " 聊天 (Chat)" 视图,以及一个用于 AI 驱动的代码编辑会话的 “Copilot Edits” 视图。本月,我们的目标是通过将这两个视图合并为一个 " 聊天 (Chat)" 视图来简化基于聊天的体验。在聊天视图中,您会看到一个包含三种模式的下拉菜单:

截图显示聊天视图中的聊天模式选择器。

  • 提问 (Ask):与之前的聊天视图相同。可以就您的工作区或一般编码问题提问,使用任何模型。使用 @ 调用内置的聊天参与者或来自已安装 扩展 的参与者。使用 # 手动附加任何类型的上下文。
  • Agent:启动一个 Agentic (基于 Agent 的) 编码流程,使用一组工具让其自主收集上下文、运行终端命令或采取其他操作来完成任务。Agent 模式已为所有 VS Code Insiders 用户启用,并且我们正在向 VS Code 稳定版中的更多用户推广。
  • 编辑 (Edit):在编辑模式下,模型可以对多个文件进行定向编辑。附加 #codebase 让它自动查找要编辑的文件。但它不会自动运行终端命令或执行任何其他操作。

注意:如果您在此列表中看不到 Agent 模式,则表示该功能尚未为您启用,或者它已被组织策略禁用,需要由 组织所有者 启用。

除了简化您的聊天体验外,这种统一还为 AI 驱动的代码编辑带来了一些新功能:

  • 在对话中切换模式:例如,您可以在提问模式下开始构思应用创意,然后切换到 Agent 模式来执行计划。提示:按 Ctrl+. (Windows/Linux) 或 ⌘. (macOS) 快速更改模式。
  • 历史记录中的编辑会话:使用 显示聊天 (Show Chats) 命令(聊天视图顶部的时钟图标)恢复过去的编辑会话并继续处理它们。
  • 将聊天移动到编辑器或窗口:选择 在新编辑器/新窗口中打开聊天 (Open Chat in New Editor/New Window) 将您的聊天对话从侧边栏弹出到新的编辑器选项卡或单独的 VS Code 窗口中。聊天很早就支持此功能,但现在您也可以从编辑器窗格或单独的窗口运行编辑/Agent 会话。
  • 多个 Agent 会话:根据上一点,这意味着您甚至可以同时运行多个 Agent 会话。您可能希望有一个 Agent 模式的聊天用于实现某个功能,而另一个独立的会话用于进行研究和使用其他工具。不建议同时指导两个 Agent 会话编辑文件,这可能会导致混淆。

1.1.9- 自带密钥 (Bring Your Own Key, BYOK) (预览)

Copilot Pro 和 Copilot Free 用户现在可以为 Azure、Anthropic、Gemini、Open AI、Ollama 和 Open Router 等流行提供商自带 API 密钥。这使您可以在新模型发布的第一天就使用 Copilot 本身不支持的新模型。

要尝试此功能,请从模型选择器中选择 管理模型… (Manage Models…)。我们正在积极探索对 Copilot Business 和 Enterprise 客户的支持,并将在未来版本中分享更新。要了解有关此功能的更多信息,请前往我们的 文档

用户界面中“管理模型 - 预览”下拉菜单的截图。下拉菜单顶部有标签“选择提供商”,下方列出了选项。选项包括“Anthropic”(蓝色高亮)、“Azure”、“Gemini”、“OpenAI”、“Ollama”和“OpenRouter”。“Anthropic”选项旁边显示一个齿轮图标。

1.1.10- 可重用提示文件

1.1.10.1- 改进的配置

设置: chat.promptFilesLocations

chat.promptFilesLocations 设置现在支持文件路径中的 glob 模式。例如,要包含当前打开的工作区中所有 .prompt.md 文件,您可以将路径设置为 { "**": true }

此外,配置现在在适用的文件系统上遵循大小写敏感性,与主机操作系统的行为保持一致。

1.1.10.2- 改进的提示文件编辑

  • 您的 .prompt.md 文件现在提供文件系统路径的基本自动完成功能,并高亮显示有效的文件引用。而断开的链接现在显示为警告或错误波浪线,并提供详细的诊断信息。
  • 您现在可以使用 聊天: 使用提示 (Chat: Use Prompt) 命令中提示文件列表内的编辑和删除操作来管理提示。
  • 提示文件中的文件夹引用不再标记为无效。
  • Markdown 注释现在得到正确处理,例如,在生成发送给 LLM 模型的最终提示时,所有注释掉的链接都会被忽略。

1.1.10.3- 与自定义指令保持一致

.github/copilot-instructions.md 文件现在的行为类似于任何其他可重用的 .prompt.md 文件,支持嵌套链接解析和增强的语言功能。此外,现在可以引用任何 .prompt.md 文件并进行适当处理。

了解更多关于 自定义指令 的信息。

1.1.10.4- 用户提示

创建用户提示 (Create User Prompt) 命令现在允许创建一种称为用户提示的新类型提示。这些提示存储在用户数据文件夹中,并且可以在机器之间同步,类似于代码片段或用户设置。可以在 同步设置 中使用同步资源列表中的 提示 (Prompts) 项来配置同步。

1.1.11- 改进的视觉支持 (预览)

上一个迭代中,为 GPT-4o 启用了 Copilot Vision。查看我们的 发行说明 以了解更多关于如何在聊天中附加和使用图像的信息。

此版本中,您可以通过拖放从任何浏览器附加图像。从浏览器拖放的图像必须具有正确的 url 扩展名,包括 .jpg.png.gif.webp.bmp

视频: 显示将 Chrome 中的图像拖放到聊天面板中。

1.2- 编辑器配置

1.2.1- 统一的聊天体验

我们已将 VS Code 中的聊天体验简化为一个统一的聊天视图。您现在可以轻松地在不同的聊天模式之间切换,而无需在单独的视图之间移动并丢失对话上下文。

截图显示聊天视图中的聊天模式选择器。

根据您的场景,使用以下任一模式,并在对话中自由切换:

  • 提问 (Ask) 模式:优化用于询问有关代码库的问题和构思想法。
  • 编辑 (Edit) 模式:优化用于跨代码库中的多个文件进行编辑。
  • Agent 模式:优化用于自主编码流程,结合代码编辑和工具调用。

获取有关 统一聊天视图 的更多详细信息。

1.2.2- 通过即时索引加快工作区搜索

远程工作区索引 可加速在大型代码库中搜索相关代码片段,AI 在回答问题和生成编辑时会使用这些片段。这些远程索引对于包含数万甚至数十万个文件的大型代码库特别有用。

以前,您必须按下一个按钮或运行一个命令来构建并开始使用远程工作区索引。借助我们新的即时索引支持,我们现在会在您首次尝试询问 #codebase/@workspace 问题时自动构建远程工作区索引。在大多数情况下,此远程索引可以在几秒钟内构建完成。构建完成后,您或任何其他在 VS Code 中使用该仓库的人进行的任何代码库搜索都将自动使用远程索引。

请记住,远程工作区索引目前仅适用于存储在 GitHub 上的代码。要使用远程工作区索引,请确保您的工作区包含一个带有 GitHub 远程仓库的 git 项目。您可以使用 Copilot 状态菜单 查看当前使用的索引类型:

截图显示 Copilot 状态栏菜单中的工作区索引状态。

为了管理负载,我们将在未来几周内逐步推出即时索引,因此您可能不会立即看到它。当即时索引尚未为您启用时,您仍然可以运行 GitHub Copilot: 构建远程索引 (GitHub Copilot: Build remote index) 命令来开始使用远程索引。

1.2.3- Copilot 状态菜单

现在所有用户都可以使用可从状态栏访问的 Copilot 状态菜单。本里程碑我们为其添加了一些新功能:

1.2.4- 开箱即用的 Copilot 设置 (实验性)

设置: chat.setupFromDialog

我们正在发布一项实验性功能,以提供开箱即用的功能性聊天体验。这包括聊天视图、编辑器/终端内联聊天和快速聊天。首次发送聊天请求时,我们将引导您登录并注册 Copilot Free。

视频: 演示开箱即用的 Copilot。

如果您想亲自体验此功能,请启用 chat.setupFromDialog 设置。

1.2.5- 聊天预发布频道不匹配

如果您在 VS Code 稳定版 (Stable) 中安装了 Copilot Chat 扩展的预发布版本,一个新的欢迎屏幕将通知您此配置不受支持。由于聊天功能的快速开发,该扩展将不会在 VS Code 稳定版中激活。

欢迎屏幕提供选项,可以选择切换到扩展的发布版本或下载 VS Code Insiders

截图显示聊天的欢迎视图,指示扩展的预发布版本在 VS Code stable 中不受支持。显示了一个切换到发布版本的按钮,以及一个切换到 VS Code Insiders 的次要链接。

1.2.6- 语义文本搜索改进 (实验性)

设置: github.copilot.chat.search.semanticTextResults

AI 驱动的语义文本搜索现在默认在搜索视图中启用。使用 Ctrl+I (Windows/Linux) 或 ⌘I (macOS) 键盘快捷键触发语义搜索,它会根据您的查询显示最相关的结果,置于常规搜索结果之上。

视频: 演示 Visual Studio Code 中的语义搜索改进。

您还可以通过使用 #searchResults 工具在聊天提示中引用语义搜索结果。这使您可以要求 LLM 总结或解释结果,甚至根据它们生成代码。

视频: 演示在聊天视图中使用搜索结果。

1.2.7- 设置编辑器搜索更新

默认情况下,设置编辑器搜索现在使用我们在上一个版本中引入的键匹配算法。即使设置 ID 与已知设置完全匹配,它也会显示其他相关设置。

视频: 演示在设置编辑器中搜索 ‘files.autoSave’ 和 ‘mcp’,两者都显示了多个设置。
主题: Light Pink (在 vscode.dev 上预览)

1.2.8- 窗口控件的新设置 (Linux, Windows)

设置: window.controlsStyle

如果您已将标题栏样式 (window.titleBarStyle) 设置为 custom,现在可以在三种不同的窗口控件样式之间进行选择。

  • native:这是默认设置,根据底层平台渲染窗口控件
  • custom:如果您更喜欢自定义样式而不是原生样式,则使用自定义样式渲染窗口控件
  • hidden:如果您想在标题栏中获得一些空间并且是更偏向键盘操作的用户,则完全隐藏窗口控件

1.3- 代码编辑

1.3.1- 后续编辑建议 (Next Edit Suggestions, NES) 正式发布

设置: github.copilot.nextEditSuggestions.enabled

我们很高兴地宣布后续编辑建议 (NES) 正式发布!此外,我们还对 NES 的整体用户体验进行了一些改进:

  • 使编辑建议更紧凑,减少对周围代码的干扰,并且更易于一目了然地阅读。
  • 更新了边栏指示器 (gutter indicator),以确保所有建议都更容易被注意到。

视频: 演示 NES 根据用户最近的更改建议编辑。

1.3.2- AI 编辑改进

我们在使用 AI 生成编辑时进行了一些小的调整:

  • 在使用 AI 编辑重写文件时,静音编辑器外部的诊断事件。以前,我们已经在此场景中禁用了错误波浪线。这些更改减少了 " 问题 " 面板中的闪烁,并确保我们不会为快速修复代码操作发出请求。
  • 当您决定保留 AI 编辑时,我们现在会显式保存文件。

1.3.3- 基于工具的编辑模式

设置: chat.edits2.enabled

我们正在更改 聊天中的编辑模式 的操作方式。新的编辑模式使用与 Agent 模式相同的方法,即让模型调用工具来对文件进行编辑。这种对齐的一个好处是,它使您能够在所有三种模式之间无缝切换,同时极大地简化了这些模式在底层的工作方式。

一个缺点是,这意味着新模式只能与 Agent 模式所能使用的相同且较少的模型集一起工作,即支持工具调用并且经过测试以确保在使用工具时可以获得良好体验的模型。您可能会注意到像 o3-miniClaude 3.7 (Thinking) 这样的模型在编辑模式的列表中缺失。如果您想继续使用这些模型进行编辑,请禁用 chat.edits2.enabled 设置以恢复到以前的编辑模式。切换模式时,系统会要求您清除会话。

我们了解到,在使用工具时,要跨不同模型获得一致的结果,提示工程会更困难,但我们正在努力让这些模型在编辑(和 Agent)模式下可用。

此设置将逐步为 VS Code 稳定版用户启用。

1.3.4- 内联建议语法高亮

设置: editor.inlineSuggest.syntaxHighlightingEnabled

通过此更新,内联建议的语法高亮现在默认启用。请注意在以下截图中,代码建议已应用了语法着色。

编辑器的截图,显示已为幽灵文本启用语法高亮。

如果您更喜欢没有语法高亮的内联建议,可以使用 editor.inlineSuggest.syntaxHighlightingEnabled 禁用它。

编辑器的截图,显示已关闭幽灵文本的高亮。

1.3.5- 基于 Tree-Sitter 的语法高亮 (预览)

设置: editor.experimental.preferTreeSitter.csseditor.experimental.preferTreeSitter.regex

在之前使用 Tree-Sitter 进行语法高亮工作的基础上,我们现在为 CSS 文件以及 TypeScript 中的正则表达式提供实验性的、基于 Tree-Sitter 的语法高亮支持。

1.4- Notebooks

1.4.1- Jupyter Notebook 文档最低版本升至 4.5

新 Notebook 的默认 nbformat 版本已从 4.2 提升到 4.5,这将为 Notebook 的每个单元格设置 id 字段,以帮助计算差异。您也可以通过在 Notebook 的原始 JSON 中将 nbformat_minor 设置为 5 来手动更新现有 Notebook。

1.4.2- AI Notebook 编辑改进

对 Notebook 的 AI 驱动编辑支持(包括 Agent 模式)现已在稳定版 (Stable) 中可用。这是上个月在 VS Code Insiders 中作为预览功能添加的。

您现在可以使用聊天来编辑 Notebook 文件,体验与编辑代码文件一样直观:跨多个单元格修改内容、插入和删除单元格以及更改单元格类型。此功能在处理数据科学或文档 Notebook 时提供了无缝的工作流程。

1.4.2.1- 新的 Notebook 工具

VS Code 现在提供了一个专用工具,可直接从聊天创建新的 Jupyter Notebook。此工具会根据您的查询计划并创建一个新的 Notebook。

在 Agent 模式或编辑模式下使用新的 Notebook 工具(请确保使用 chat.edits2.enabled 启用改进的编辑模式)。如果您使用的是提问模式,请在聊天提示中键入 /newNotebook 以创建新的 Notebook。

视频: 演示在 Agent 模式下使用聊天和新的 Notebook 工具创建新的 Jupyter Notebook。

1.4.2.2- 导航 AI 编辑

使用差异工具栏可以迭代并查看跨单元格的每个 AI 编辑。

视频: 演示聊天实现一个 TODO 任务,然后导航浏览这些更改。

1.4.2.3- 撤销 AI 编辑

当焦点在单元格容器上时,撤销 (Undo) 命令会撤销 Notebook 级别的整套 AI 更改。

视频: 演示聊天对 Notebook 进行多次编辑,并使用 ctrl+z 撤销这些编辑。

1.4.2.4- 聊天中支持文本和图像输出

您现在可以将 Notebook 单元格输出(例如文本、错误和图像)直接添加到聊天中作为上下文。这使您可以在使用提问、编辑或 Agent 模式时引用输出,从而使语言模型更容易理解和协助处理您的 Notebook 内容。

使用 将单元格输出添加到聊天 (Add cell output to chat) 操作,可通过三点菜单或右键单击输出来使用。

将单元格错误输出附加为聊天上下文:

视频: 演示将 Notebook 单元格错误输出附加到聊天。

将单元格输出图像附加为聊天上下文:

视频: 演示将 Notebook 单元格输出图像附加到聊天。

1.5- 辅助功能

1.5.1- 聊天 Agent 模式改进

现在,当工具调用期间需要手动操作时(例如 " 在终端中运行命令 "),您会收到通知。此信息也包含在相关聊天响应的 ARIA 标签中,增强了屏幕阅读器用户的可访问性。

此外,Agent 模式 中提供了一个新的辅助功能帮助对话框,解释了用户可以从此功能中获得什么以及如何有效地导航它。

1.5.2- 聊天编辑操作的辅助功能信号

当您保留或撤销 AI 生成的编辑时,VS Code 现在提供听觉信号。这些信号可通过 accessibility.signals.editsKeptaccessibility.signals.editsUndone 进行配置。

1.5.3- 改进的建议控件 ARIA 标签

建议控件项的 ARIA 标签现在包含更丰富、更具描述性的信息,例如建议的类型(例如,方法或变量)。这些信息以前只能通过图标提供给视力正常的用户。

1.6- 源代码管理

1.6.1- 引用选择器改进

设置: git.showReferenceDetails

本里程碑中,我们改进了用于各种源代码管理操作(如签出、合并、变基或删除分支)的引用选择器。更新后的引用选择器包含最后一次提交的详细信息(作者、提交消息、提交日期)以及本地分支的领先/落后信息。这些额外的上下文将帮助您为各种操作选择正确的引用。

通过切换 git.showReferenceDetails 设置来隐藏附加信息。

源代码管理引用选择器的截图,显示了一个 git 分支列表,其中包含最后一次提交的详细信息以及领先/落后信息。

1.6.2- 仓库状态栏项

包含多个仓库的工作区现在有一个源代码管理提供程序状态栏项,它在分支选择器的左侧显示活动仓库。这个新的状态栏项提供了额外的上下文,因此当您在编辑器之间导航并使用源代码管理视图时,您知道哪个是活动仓库。

要隐藏源代码管理提供程序状态栏项,请右键单击状态栏,然后从上下文菜单中取消选择 源代码管理提供程序 (Source Control Provider)

截图显示了包含多个仓库的工作区的仓库状态栏项。

1.6.3- Git Blame 编辑器装饰改进

我们收到的反馈是,在键入时," 尚未提交 (Not Yet Committed)" 编辑器装饰没有提供太多价值,反而更像是一种干扰。从本里程碑开始," 尚未提交 (Not Yet Committed)" 编辑器装饰仅在使用键盘或鼠标在代码库中导航时显示。

1.6.4- 提交输入框光标自定义

本里程碑中,感谢社区的贡献,我们将 editor.cursorStyleeditor.cursorWidth 设置添加到了源代码管理输入框所遵循的设置列表中。

1.7- 终端

1.7.1- Agent 模式下的可靠性

允许 Agent 模式在终端中运行命令的工具进行了一些可靠性和兼容性改进。您应该会遇到更少工具卡住或命令完成但没有输出的情况。

其中一个较大的变化是引入了 " 丰富 (rich)" 质量的 Shell 集成 概念,与之相对的是 " 基本 (basic)" 和 " 无 (none)"。VS Code 附带的 Shell 集成脚本通常都应启用丰富的 Shell 集成,这在 " 在终端中运行 " 工具(以及一般的终端使用)中提供了最佳体验。您可以通过将鼠标悬停在终端选项卡上来查看 Shell 集成质量。

1.7.2- 终端 IntelliSense 改进 (预览)

1.7.2.1- 增强的 code CLI IntelliSense

IntelliSense 现在支持 codecode-insiderscode-tunnel CLI 的子命令。例如,键入 code tunnel 会显示可用的子命令,如 helpkillprune,每个命令都带有描述信息。

终端窗口截图,显示已键入 code tunnel。建议小部件显示了 help、kill、prune 等子命令,以及每个命令的描述。

我们还为以下选项添加了建议:

  • --uninstall-extension
  • --disable-extension
  • --install-extension

这些会显示已安装扩展的列表,以帮助完成命令。

VSCode 终端截图,其中包含 code --uninstall-extension。显示了可用扩展的列表,包括 vscode-eslint 和 editorconfig。

此外,code --locate-shell-integration-path 现在提供特定于 Shell 的选项,例如 bashzshfishpwsh

VSCode 终端截图,显示命令输入:code --locate-shell-integration-path,以及列出 Shell 选项 bash、fish、pwsh 和 zsh 的下拉菜单。

1.7.2.2- 全局命令自动刷新

当检测到系统 bin 目录发生更改时,终端现在会自动刷新其全局命令列表。这意味着新安装的 CLI 工具(例如,运行 npm install -g pnpm 后)将立即出现在补全中,无需重新加载窗口。

以前,由于缓存的原因,新工具的补全在手动重新加载窗口之前不会出现。

1.7.2.3- 选项值上下文

终端建议现在显示有关预期选项值的上下文信息,帮助您更轻松地完成命令。

终端截图,显示正在进行的命令:npm install --omit。终端建议小部件显示了预期的选项。

1.7.2.4- Fish Shell 的丰富补全

在上一个版本中,我们为 bash 和 zsh 添加了详细的命令补全。本迭代中,我们将该支持扩展到了 fish。补全详细信息来源于 Shell 的文档或内置帮助命令。

例如,在 fish 中键入 jobs 会显示用法信息和选项:

Visual Studio Code 终端截图,其中一个 fish 终端显示用户已键入 jobs。显示的建议小部件提供了有关 jobs 命令的信息,包含详细的用法示例和选项。

1.7.2.5- 建议中的文件类型图标

终端中的建议现在包含不同文件类型的特定图标,使您更容易一眼区分脚本和二进制文件。

终端截图,显示各种脚本文件的建议,包括 code.sh、code-cli.sh 和 code-server.js。图标指示特定的文件类型。

1.7.2.6- 内联建议详细信息

内联建议(在终端中显示为幽灵文本)继续显示在建议列表的顶部。在此版本中,我们向这些条目添加了命令详细信息,以便在接受它们之前提供更多上下文。

终端截图,显示 Block 命令作为终端中的幽灵文本。第一个建议是 block,并且包含用法信息。

1.7.3- 新的简化和详细选项卡悬停提示

默认情况下,终端选项卡悬停时现在显示的信息少了很多。

简单悬停截图,显示终端名称、PID、命令行、Shell 集成质量和操作

要查看所有内容,悬停窗口底部有一个 显示详细信息 (Show Details) 按钮。

详细悬停截图,显示对环境有贡献的扩展以及详细的 Shell 集成诊断信息

1.7.4- 已签名的 PowerShell Shell 集成

Shell 集成 PowerShell 脚本现在已签名,这意味着在 Windows 上使用默认 PowerShell 执行策略 RemoteSigned 时,Shell 集成现在应该会自动开始工作。您可以在 此处阅读有关 Shell 集成优势 的更多信息。

1.7.5- 终端 Shell 类型

本迭代中,我们最终确定了我们的终端 Shell API,允许扩展查看用户在其终端中的当前 Shell 类型。
订阅事件 onDidChangeTerminalState 可以让您看到用户在终端中 Shell 类型的更改。
例如,Shell 可能从 zsh 更改为 bash。

当前可识别的所有 Shell 列表 在此处列出

1.8- 远程开发

1.8.1- 旧版 Linux 服务器支持已终止

自 1.99 版本起,您将无法再连接到这些服务器。正如我们在 1.97 版本发布说明 中指出的,需要额外时间完成迁移到受支持的 Linux 发行版的用户,可以提供 glibclibstdc++ 的自定义构建作为变通方法。有关此变通方法的更多信息,请参见 FAQ 部分。

1.9- 企业版

1.9.1- macOS 设备管理

除了 Windows 之外,VS Code 现在还支持 macOS 上的设备管理。这允许系统管理员从集中管理系统(如 Microsoft Intune)推送策略。

有关更多详细信息,请参阅 企业支持 文档。

1.10- 对扩展的贡献

1.10.1- Python

1.10.1.1- Pylance 对可编辑安装提供更好的支持

Pylance 现在支持解析以可编辑模式(pip install -e .)安装的包的导入路径,如 PEP 660 所定义,这在这些场景中提供了改进的 IntelliSense 体验。

此功能通过 python.analysis.enableEditableInstalls 启用,我们计划在本月内开始将其作为默认体验推出。如果您遇到任何问题,请在 Pylance GitHub 仓库 报告。

1.10.1.2- Pylance 提供更快、更可靠的诊断体验 (实验性)

我们开始推出一项更改,以提高使用扩展发布版本时 Pylance 诊断的准确性和响应性。这对于有多个打开或最近关闭文件的场景特别有帮助。

如果您不想等待推广,可以设置 python.analysis.usePullDiagnostics。如果您遇到任何问题,请在 Pylance GitHub 仓库 报告。

1.10.1.3- Pylance 自定义 Node.js 参数

有一个新的 python.analysis.nodeArguments 设置,允许您在使用 python.analysis.nodeExecutable 时直接将自定义参数传递给 Node.js。默认情况下,它设置为 "--max-old-space-size=8192",但您可以根据需要进行修改(例如,在处理大型工作区时为 Node.js 分配更多内存)。

此外,当将 python.analysis.nodeExecutable 设置为 auto 时,Pylance 现在会自动下载 Node.js。

1.11- 扩展开发

1.11.1- Terminal.shellIntegration 调整

Terminal.shellIntegration API 现在仅在发生命令检测时才会启用。以前,这应该在报告当前工作目录时起作用,这导致 TerminalShellIntegration.executeCommand 无法很好地工作。

此外,TerminalShellIntegration.executeCommand 现在将表现得更加一致,并跟踪单个命令行最终运行多个命令的多个 " 子执行 "。这取决于 Agent 模式可靠性部分 中提到的丰富 Shell 集成。

1.12- 提案 API (Proposed APIs)

1.12.1- 任务问题匹配器状态

我们添加了 提案 API,以便扩展可以监视任务的问题匹配器何时开始和完成处理行。使用 taskProblemMatcherStatus 启用它。

1.12.2- 向 LLM 发送图像

本迭代中,我们添加了一个 提案 API,以便扩展可以附加图像并将视觉请求发送到语言模型。附件必须是图像的原始、非 base64 编码的二进制数据 (Uint8Array)。最大图像大小为 5MB。

查看 此 API 提案问题 以查看用法示例并了解此 API 的最新状态。

1.13- 工程

1.13.1- 使用 Marketplace 的新 /latest API 检查扩展更新

几个里程碑之前,我们在 vscode-unpkg 服务中引入了一个新的 API 端点来检查扩展更新。Marketplace 现在支持相同的端点,VS Code 现在使用此端点来检查扩展更新。这目前通过实验性方式启用,并将分阶段向用户推出。

1.14- 感谢

最后但同样重要的是,非常感谢 VS Code 的贡献者们。

1.14.1- 问题跟踪贡献者

1.14.2- 合并请求 (Pull Request) 贡献者