2025 年 3 月(版本 1.99)

更新 1.99.1:此更新修复了这些 安全问题

更新 1.99.2:此更新修复了这些 问题

更新 1.99.3:此更新修复了这些 问题

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


欢迎阅读 Visual Studio Code 2025 年 3 月版发布说明。此版本包含许多我们希望您会喜欢的更新,以下是主要亮点:

  • 代理模式

    • Agent 模式现已在 VS Code 稳定版中可用。通过设置 chat.agent.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置由组织级别管理。请联系管理员进行更改。 启用它(更多...)。
    • 使用模型上下文协议 (MCP) 服务器工具扩展 Agent 模式(更多...)。
    • 在 Agent 模式下体验新的内置工具,用于获取网页内容、查找符号引用以及进行深度思考(更多...)。
  • 代码编辑

    • Next Edit Suggestions (下一项编辑建议) 现已正式发布(更多...)。
    • AI 在编辑器中进行编辑时,干扰(如诊断事件)更少,从而提高专注度(更多...)。
  • 聊天

    • 使用您自己的 API 密钥在聊天中访问更多语言模型(预览版)(更多...)。
    • 在统一的聊天体验中轻松切换 Ask、Edit 和 Agent 模式(更多...)。
    • 通过即时远程工作区索引,体验更快的搜索速度和更高的搜索准确度(更多...)。
  • Notebook 编辑

    • 支持 Edit 和 Agent 模式,像编辑代码文件一样轻松地创建和编辑 Notebook(更多...)。

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

聊天

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

设置 chat.agent.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置由组织级别管理。请联系管理员进行更改。

我们很高兴地宣布,Agent 模式现已在 VS Code 稳定版中可用!通过设置 chat.agent.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置由组织级别管理。请联系管理员进行更改。 来启用它。如果您没有看到该设置,请确保重载 VS Code。随着我们在接下来的几周内向所有用户默认开启该功能,您将不再需要手动启用此设置。

查看 Agent 模式文档,或从聊天模式选择器中选择 Agent 模式。

Screenshot that shows the Chat view, highlighting agent mode selected in the chat mode picker.

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

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

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

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

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

主题:Codesong(在vscode.dev上预览)

如果您已经在 Claude Desktop 等其他应用程序中使用 MCP 服务器,VS Code 将发现它们并主动询问是否为您运行。此行为可以通过设置 chat.mcp.discovery.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 进行切换。

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

您可以在 我们的文档 中详细了解如何安装和使用 MCP 服务器。

Agent 模式工具

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

思考工具(实验性)

设置 github.copilot.chat.agent.thinkingTool 在 VS Code 中打开 在 VS Code Insiders 中打开

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

Fetch 工具

使用 #fetch 工具将公开可访问的网页内容包含在您的提示中。例如,如果您想包含关于 MCP 等主题的最新文档,您可以请求获取 完整文档(方便 LLM 使用),并将其用于提示中。以下是一个演示视频

在 Agent 模式下,此工具会自动拾取,但您也可以在其他模式中通过 #fetch 显式引用它,后跟您要获取的 URL。

此工具的工作原理是在无头浏览器窗口中渲染网页,该页面的数据会在本地缓存,因此您可以反复要求模型获取内容,而无需重新渲染的开销。

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

Fetch 工具限制

  • 目前,此浏览器窗口中禁用了 JavaScript。如果网站完全依赖 JavaScript 来渲染内容,该工具将无法获得太多上下文。这是一个我们正在考虑改变的限制,未来可能会允许使用 JavaScript。
  • 由于其无头特性,我们无法获取身份验证后的页面,因为此无头浏览器存在于与您使用的浏览器不同的浏览器上下文中。建议使用 MCP 引入专门为该目标构建的 MCP 服务器,或者通用的浏览器 MCP 服务器,如 Playwright MCP 服务器

Usages 工具

#usages 工具结合了“查找所有引用”、“查找实现”和“转到定义”。该工具可以帮助聊天功能了解有关函数、类或接口的更多信息。例如,聊天可以使用此工具查找接口的示例实现,或在重构时找到所有需要更改的地方。

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

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

设置 github.copilot.chat.newWorkspaceCreation.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开

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

Agent 模式中的 VS Code 扩展工具

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

任何在该 API 中贡献并设置了 toolReferenceNamecanBeReferencedInPrompt 的工具,都会自动在 Agent 模式下可用。

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

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

Agent 模式工具批准

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

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

Screenshot that shows the agent mode tool Continue button dropdown options for remembering approval.

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

我们计划在未来以更细粒度的功能扩展此设置。

SWE-bench 上的 Agent 评估

在 Claude 3.7 Sonnet 的驱动下,VS Code 的 Agent 在 swebench-verified 测试中实现了 56.0% 的通过率,这遵循了 Anthropic 关于配置 Agent 在 SWE-bench 环境中无需用户输入即可执行任务的 研究。我们的实验已转化为发布改进的提示词、工具描述和 Agent 模式下的工具设计,包括针对 Claude 3.5 和 3.7 Sonnet 模型进行过分发的、用于文件编辑的新工具。

统一的聊天视图

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

Screenshot that shows the chat mode picker in the Chat view.

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

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

除了简化您的聊天体验外,这种统一还为 AI 驱动的代码编辑启用了几项新功能

  • 在对话中切换模式:例如,您可以在 Ask 模式下头脑风暴一个应用创意,然后切换到 Agent 模式来执行该计划。提示:按 可快速更改模式。
  • 历史记录中的编辑会话:使用 显示聊天 (Show Chats) 命令(聊天视图顶部的时钟图标)恢复过去的编辑会话并继续工作。
  • 将聊天移至编辑器或窗口:选择 在新建编辑器/新窗口中打开聊天 (Open Chat in New Editor/New Window),将您的聊天对话从侧边栏弹出到新的编辑器选项卡或单独的 VS Code 窗口。聊天功能长期支持此功能,但现在您也可以从编辑器面板或单独的窗口运行您的编辑/代理会话。
  • 多个代理会话:基于上述观点,这意味着您甚至可以同时运行多个代理会话。您可能希望在一个聊天窗口中以 Agent 模式处理功能实现,并在另一个独立的会话中进行研究和使用其他工具。不建议同时指挥两个代理会话进行文件编辑,这可能会导致混乱。

自带 API 密钥 (BYOK)(预览版)

Copilot Pro 和 Copilot Free 用户现在可以为 Azure、Anthropic、Gemini、Open AI、Ollama 和 Open Router 等热门提供商自带 API 密钥。这使您能够在模型发布的第一天就使用那些原生不支持的 Copilot 模型。

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

A screenshot of a "Manage Models - Preview" dropdown menu in a user interface. The dropdown has the label "Select a provider" at the top, with a list of options below it. The options include "Anthropic" (highlighted in blue), "Azure," "Gemini," "OpenAI," "Ollama," and "OpenRouter." A gear icon is displayed next to the "Anthropic" option.

可复用提示文件

改进的配置

设置 chat.promptFilesLocations 在 VS Code 中打开 在 VS Code Insiders 中打开

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

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

改进的提示文件编辑

  • 您的 .prompt.md 文件现在提供针对文件系统路径的基础自动补全,并突出显示有效的文件引用。另一方面,断开的链接现在会显示为警告或错误波浪线,并提供详细的诊断信息。
  • 您现在可以使用 Chat: Use Prompt 命令中提示文件列表内的编辑和删除操作来管理提示。
  • 提示文件中的文件夹引用不再被标记为无效。
  • Markdown 注释现在得到妥善处理,例如,在生成发送给 LLM 模型的最终提示时,所有被注释掉的链接都会被忽略。

与自定义指令的对齐

.github/copilot-instructions.md 文件现在的行为就像任何其他可复用的 .prompt.md 文件一样,支持嵌套链接解析和增强的语言特性。此外,任何 .prompt.md 文件现在都可以被引用并得到适当的处理。

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

用户提示

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

改进的视觉支持(预览版)

上个迭代中,Copilot Vision 已为 GPT-4o 启用。查看我们的 发布说明,了解如何如何在聊天中附加和使用图像。

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

配置编辑器

统一的聊天体验

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

Screenshot that shows the chat mode picker in the Chat view.

根据您的场景,使用这些模式中的任意一种,并在对话中自由切换

  • Ask 模式:针对询问代码库相关问题和集思广益进行优化。
  • Edit 模式:针对对代码库中的多个文件进行编辑进行优化。
  • Agent 模式:针对自主编码流程进行优化,结合了代码编辑和工具调用。

获取关于 统一聊天视图 的更多细节。

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

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

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

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

Screenshot that shows the workspace index status in the Copilot Status Bar menu.

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

Copilot 状态菜单

从状态栏可访问的 Copilot 状态菜单现已对所有用户启用。在此里程碑中,我们为其添加了一些新功能

  • 随时查看 工作区索引 状态信息。

    Screenshot that shows the workspace index status of a workspace in the Copilot menu.

  • 查看活动编辑器是否启用了代码补全。

    一个新的图标反映了状态,以便您可以快速查看是否启用了代码补全。

    Screenshot that shows the Copilot status icon when completions is disabled.

  • 启用或禁用 代码补全和 NES

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

设置 chat.setupFromDialog 在 VS Code 中打开 在 VS Code Insiders 中打开

我们正在推出一项实验性功能,以显示开箱即用的功能性聊天体验。这包括聊天视图、编辑器/终端内联聊天和快速聊天。您第一次发送聊天请求时,我们将引导您完成登录和注册 Copilot Free 的过程。

如果您想亲自体验此过程,请启用 chat.setupFromDialog 在 VS Code 中打开 在 VS Code Insiders 中打开 设置。

聊天预发布通道不匹配

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

欢迎屏幕提供了切换到该扩展的发布版本或下载 VS Code Insiders 的选项。

Screenshot that shows the welcome view of chat, indicating that the pre-release version of the extension is not supported in VS Code stable. A button is shown to switch to the release version, and a secondary link is shown to switch to VS Code Insiders.

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

设置 github.copilot.chat.search.semanticTextResults 在 VS Code 中打开 在 VS Code Insiders 中打开

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

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

设置编辑器搜索更新

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

主题:浅粉色(在 vscode.dev 上预览)

窗口控件的新设置(Linux、Windows)

设置 window.controlsStyle 在 VS Code 中打开 在 VS Code Insiders 中打开

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

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

代码编辑

Next Edit Suggestions 正式发布

设置 github.copilot.nextEditSuggestions.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开

我们很高兴地宣布 Next Edit Suggestions (NES) 正式发布!此外,我们还对 NES 的整体用户体验进行了多项改进

  • 使编辑建议更加紧凑,减少对周围代码的干扰,并使其更易于一目了然地阅读。
  • 更新装订线指示器,确保所有建议都更容易被注意到。

AI 编辑改进

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

  • 在通过 AI 编辑重写文件时,静音编辑器外部的诊断事件。以前我们在此场景中已经禁用了波浪线。这些更改减少了“问题”面板中的闪烁,并确保我们不会为快速修复代码操作发出请求。

  • 当您决定保留 AI 编辑时,我们现在会显式保存文件。

基于工具的编辑模式

设置 chat.edits2.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开

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

缺点是这意味着新模式仅适用于与 Agent 模式工作时相同的简化模型集,即支持工具调用并经过测试确保在涉及工具时能有良好体验的模型。您可能会注意到 o3-miniClaude 3.7 (Thinking) 等模型在编辑模式列表中缺失。如果您希望继续使用这些模型进行编辑,请禁用 chat.edits2.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 设置以还原到之前的编辑模式。切换模式时,系统会要求您清除会话。

我们了解到,当使用工具时,在不同模型间保持一致的提示结果更加困难,但我们正在努力让这些模型在编辑(和代理)模式下可用。

此设置将在 VS Code 稳定版中逐步向用户启用。

内联建议语法高亮

设置 editor.inlineSuggest.syntaxHighlightingEnabled 在 VS Code 中打开 在 VS Code Insiders 中打开

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

Screenshot of the editor, showing that syntax highlighting is enabled for ghost text.

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

Screenshot of the editor showing that highlighting for ghost text is turned off.

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

设置 editor.experimental.preferTreeSitter.css 在 VS Code 中打开 在 VS Code Insiders 中打开 editor.experimental.preferTreeSitter.regex 在 VS Code 中打开 在 VS Code Insiders 中打开

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

Notebook

Jupyter Notebook 文档最低版本升至 4.5

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

AI Notebook 编辑改进

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

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

新的 Notebook 工具

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

在 Agent 模式或 Edit 模式下使用新的 Notebook 工具(请确保通过 chat.edits2.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 启用改进的编辑模式)。如果您正在使用 Ask 模式,请在聊天提示中输入 /newNotebook 以创建一个新的 Notebook。

浏览 AI 编辑

使用差异工具栏来迭代和审查跨单元格的每一项 AI 编辑。

撤消 AI 编辑

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

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

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

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

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

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

辅助功能

聊天 Agent 模式改进

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

此外,Agent 模式 下提供了一个新的可访问性帮助对话框,解释了用户可以从该功能中期待什么以及如何有效地进行导航。

聊天编辑操作的可访问性信号

VS Code 现在会在您保留或撤消 AI 生成的编辑时提供听觉信号。这些信号可通过 accessibility.signals.editsKept 在 VS Code 中打开 在 VS Code Insiders 中打开 accessibility.signals.editsUndone 在 VS Code 中打开 在 VS Code Insiders 中打开 进行配置。

改进建议控件的 ARIA 标签

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

源代码管理

引用选择器改进

设置 git.showReferenceDetails 在 VS Code 中打开 在 VS Code Insiders 中打开

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

通过切换 git.showReferenceDetails 在 VS Code 中打开 在 VS Code Insiders 中打开 设置来隐藏额外信息。

Screenshot of the source control references picker showing a list of git branches with details of the last commit, and ahead/behind information.

仓库状态栏项

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

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

Screenshot showing the repository status bar item for workspaces that contain more than one repository.

Git Blame 编辑器装饰改进

我们收到的反馈显示,在输入时,“Not Yet Committed (尚未提交)”编辑器装饰价值不大,反而更像是一种干扰。从这个里程碑开始,“Not Yet Committed”编辑器装饰仅在通过键盘或鼠标在代码库中导航时显示。

提交输入光标自定义

在这个里程碑中,多亏了社区贡献,我们将 editor.cursorStyle 在 VS Code 中打开 在 VS Code Insiders 中打开 editor.cursorWidth 在 VS Code 中打开 在 VS Code Insiders 中打开 设置添加到了被源代码管理输入框尊重的设置列表中。

终端

Agent 模式的可靠性

允许 Agent 模式在终端中运行命令的工具在可靠性和兼容性方面进行了多项改进。您应该会发现该工具卡住或命令在没有输出的情况下完成的情况变少了。

较大的变化之一是引入了“丰富 (rich)”质量 shell 集成 的概念,而不是“基本 (basic)”和“无 (none)”。随 VS Code 提供的 shell 集成脚本通常都应启用丰富的 shell 集成,这在“在终端中运行”工具(以及一般终端使用)中提供了最佳体验。您可以通过悬停在终端选项卡上来查看 shell 集成的质量。

终端 IntelliSense 改进(预览版)

增强了对 code CLI 的 IntelliSense 支持

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

Screenshot of the terminal window, showing code tunnel has been typed. The suggest widget shows subcommands like help, kill, prune, and others, with descriptions for each command.

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

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

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

Screenshot of the VSCode terminal with code --uninstall-extension. A list of available extensions is displayed, including vscode-eslint and editorconfig.

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

Screenshot of the VSCode terminal showing a command input: code --locate-shell-integration-path with a dropdown menu listing shell options bash, fish, pwsh, and zsh.

全局命令自动刷新

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

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

选项值上下文

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

Screenshot of the terminal showing a command in progress: npm install --omit. The terminal suggest widget displays  to indicate that's the option that's expected.

fish shell 的丰富补全

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

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

Screenshot of the Visual Studio Code Terminal with a fish terminal showing a user has typed jobs. The suggest widget shown provides information about the jobs command with detailed usage examples and options.

建议中的文件类型图标

终端中的建议现在包括针对不同文件类型的特定图标,使您能够一目了然地轻松区分脚本和二进制文件。

Screenshot of the terminal, showing suggestions for various script files, including code.sh, code-cli.sh, and code-server.js. Icons indicate the specific file type.

内联建议详细信息

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

Screenshot of the terminal, showing the Block command as ghost text in the terminal. The first suggestion is block and it contains usage information.

新的简化和详细的选项卡悬停

默认情况下,终端选项卡现在显示的细节要少得多。

Screenshot of the simple hover showing the terminal name, PID, command line, shell integration quality and actions

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

Screenshot of the detailed hover showing extensions that contribute to the environment and detailed shell integration diagnostics

已签名的 PowerShell shell 集成

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

终端 shell 类型

在此迭代中,我们完成了终端 shell API,允许扩展查看其终端中用户当前的 shell 类型。订阅 onDidChangeTerminalState 事件允许您查看用户 shell 类型在终端中的更改。例如,shell 可能从 zsh 变为 bash。

目前所有可识别的 shell 列表都在 此处 列出

远程开发

Linux 旧版服务器支持已结束

从 1.99 版本开始,您无法再连接到这些服务器。正如我们在 1.97 发布说明 中所述,需要额外时间完成迁移到受支持 Linux 发行版的用户,可以提供自定义的 glibclibstdc++ 版本作为变通方法。关于此变通方法的更多信息可以在 常见问题解答 部分找到。

企业

macOS 设备管理

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

请参阅 企业支持 文档以了解更多详细信息。

对扩展的贡献

Python

对 Pylance 可编辑安装的更好支持

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

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

使用 Pylance 实现更快、更可靠的诊断体验(实验性)

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

如果您不想等待发布,可以设置 python.analysis.usePullDiagnostics 在 VS Code 中打开 在 VS Code Insiders 中打开 。如果您遇到任何问题,请在 Pylance GitHub 仓库 中报告。

Pylance 自定义 Node.js 参数

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

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

扩展创作

Terminal.shellIntegration 调整

Terminal.shellIntegration API 现在仅在命令检测发生时才会亮起。以前,当 报告当前工作目录时它也能工作,这导致 TerminalShellIntegration.executeCommand 功能不佳。

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

提议的 API

任务问题匹配器状态

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

发送图像给 LLM

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

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

工程

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

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

感谢

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

问题跟踪

对我们问题跟踪的贡献

拉取请求

vscode 的贡献

vscode-css-languageservice 的贡献

vscode-custom-data 的贡献

vscode-extension-samples 的贡献

vscode-extension-telemetry 的贡献

vscode-js-debug 的贡献

vscode-mypy 的贡献

vscode-prompt-tsx 的贡献

vscode-pull-request-github 的贡献

vscode-python-debugger 的贡献

vscode-test 的贡献

language-server-protocol 的贡献

python-environment-tools 的贡献

© . This site is unofficial and not affiliated with Microsoft.