2025 年 8 月(版本 1.104)

发布日期:2025 年 9 月 11 日

更新 1.104.1:此次更新修复了这些问题

更新 1.104.2:此次更新修复了这些问题

更新 1.104.3:此次更新修复了这些问题

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


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


如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新页面。

Insiders:想尽快尝试新功能?
您可以下载每晚的 Insiders 构建版本,并尽快尝试最新更新。
下载 Insiders

聊天

自动模型选择(预览版)

在本次迭代中,我们在聊天中引入了自动模型选择功能。当您在模型选择器中选择自动 (Auto) 模型时,VS Code 会自动选择合适的模型,以确保您获得最佳性能并减少速率限制。

自动模型选择目前处于预览阶段,我们将在接下来的几周内向所有 VS Code 中的 GitHub Copilot 用户推广该功能,首先从个人 Copilot 计划开始。

Screenshot that shows the model picker in the Chat view, showing the Auto option.

除非您的组织禁用了对这些模型的访问权限,否则“自动”模式将在 Claude Sonnet 4、GPT-5、GPT-5 mini 和 GPT-4.1 之间进行选择。使用自动模型选择时,VS Code 会根据所选模型使用可变模型乘数。如果您是付费用户,自动模式将应用 10% 的请求折扣。

您可以将鼠标悬停在聊天视图的响应上,查看所选模型和模型乘数。

Screenshot of a chat response, showing the selected model on hover.

了解更多关于 VS Code 中自动模型选择的信息。

确认对敏感文件的编辑

设置 chat.tools.edits.autoApprove 在 VS Code 中打开 在 VS Code Insiders 中打开

在智能体模式下,智能体可以自主地对工作区中的文件进行编辑。这可能包括意外或恶意地修改或删除重要文件(如配置文件),从而对您的机器造成直接的负面影响。了解更多关于使用人工智能开发工具时的安全注意事项

在此版本中,智能体在对某些文件进行编辑之前,会明确要求用户确认。这为使用智能体模式提供了额外的安全层。通过 chat.tools.edits.autoApprove 在 VS Code 中打开 在 VS Code Insiders 中打开 设置,您可以配置哪些文件模式需要确认。

常见的系统文件夹、点文件 (dotfiles) 以及工作区之外的文件默认需要确认。

Screenshot showing the confirmation dialog for sensitive file edits in the Chat view.

对 AGENTS.md 文件的支持(实验性)

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

AGENTS.md 文件允许您向智能体提供上下文和说明。从本版本开始,当您的工作区根目录中包含 AGENTS.md 文件时,它会自动被捕获并作为聊天请求的上下文。这对于使用多个 AI 智能体的团队非常有用。

AGENTS.md 文件的支持默认开启,并可通过 chat.useAgentsMdFile 在 VS Code 中打开 在 VS Code Insiders 中打开 设置进行控制。有关 AGENTS.md 文件的详细信息,请参阅 https://agents.md/

了解更多关于在 VS Code 中自定义聊天以符合您的实践和团队工作流程的内容。

改进的已更改文件体验

在此次迭代中,已更改文件列表进行了重构,新增了多项便利性功能。这些更改将改善您在智能体模式下的工作体验!

  • 已更改文件列表现在默认处于折叠状态,以便为聊天对话提供更多空间。折叠后,您仍然可以看到文件更改计数以及添加或删除的行数。

  • 当您保留或接受建议的更改时,该文件将从文件更改列表中移除。

  • 当您在源代码控制视图中暂存或提交文件时,会自动接受建议的文件更改。

  • 列表中的每项现在都会显示每个文件的更改(添加或删除的行数)。

在提示符文件中使用自定义聊天模式

提示符文件 (Prompt files) 是 Markdown 文件,您可以在其中编写可重用的聊天提示。要运行提示符文件,请在聊天输入字段中键入 / 后跟提示符文件名,或者在编辑器中打开提示符文件时使用播放按钮。

您可以指定运行提示符文件时应使用的聊天模式。以前,您只能在提示符文件中使用内置的聊天模式,如 agenteditask。现在,您还可以在提示符文件中引用自定义聊天模式。

Screenshot showing IntelliSense for custom chat modes in prompt files.

了解更多关于使用提示符文件、聊天模式和自定义说明来自定义 VS Code 中的聊天的内容。

配置提示符文件建议(实验性)

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

团队经常创建自定义提示符文件以标准化 AI 工作流程,但在用户最需要时,这些提示符可能很难发现。现在,您可以配置哪些提示符文件根据上下文条件作为聊天欢迎视图中的建议出现。

新的 chat.promptFilesRecommendations 在 VS Code 中打开 在 VS Code Insiders 中打开 设置既支持简单的布尔值,也支持上下文感知的建议的 when 子句表达式。

{
  "chat.promptFilesRecommendations": {
    "plan": true,                            // Always suggest
    "a11y-audit": "resourceExtname == .html", // Only for HTML files
    "document": "resourceLangId == markdown", // Only for Markdown files
    "debug": false                           // Never suggest
  }
}

这有助于团队在适当的时间展示正确的人工智能工作流程,使自定义提示符更易于发现,并与您的工作区和文件类型更加相关。

在工具集中选择工具

工具集是一种将相关工具组合在一起的便捷方式,VS Code 具有多个内置工具集,如 editsearch

工具选择器现在显示每个工具集包含哪些工具,您可以单独启用或禁用每个工具。您可以通过聊天视图中的 配置工具... (Configure Tools...) 按钮访问工具选择器。

Screenshot showing the tools picker with an expanded edit tool set, listing all available tools.

配置聊天中使用的字体

设置 chat.fontFamily 在 VS Code 中打开 在 VS Code Insiders 中打开 , chat.fontSize 在 VS Code 中打开 在 VS Code Insiders 中打开

VS Code 允许您选择编辑器中使用的字体,但聊天视图之前缺乏这种可配置性。我们现在添加了两个新设置,用于配置聊天消息的字体系列 ( chat.fontFamily 在 VS Code 中打开 在 VS Code Insiders 中打开 ) 和字体大小 ( chat.fontSize 在 VS Code 中打开 在 VS Code Insiders 中打开 )。

Screenshot showing the Chat view with a custom font and font size.

注意:列表的内容目前尚未应用这些设置,但我们正在努力在未来的版本中解决此问题。

与编程智能体协作(实验性)

通过编程智能体,您可以将任务委托给后台工作的 AI 智能体。您可以让多个此类智能体并行工作。我们正在不断改进聊天会话体验,以帮助您更有效地与编程智能体进行协作。

聊天会话视图

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

聊天会话视图提供了一个单一的、统一的视图,用于管理本地和贡献的聊天会话。我们显著增强了聊天会话视图,您现在可以在其中执行所有关键操作,从而更轻松地迭代和完成您的编码任务。

  • 状态栏跟踪:直接从状态栏监控多个编程智能体的进度。
  • 多会话支持:从同一个视图启动和管理多个聊天会话。
  • 扩展上下文菜单:访问更多操作以高效地与您的编程智能体进行交互。
  • 丰富的描述:启用丰富的描述后,每个列表条目现在都包含详细的上下文,帮助您快速找到相关信息。

GitHub 编程智能体集成

我们改进了 GitHub 编程智能体与聊天会话的集成,以提供更流畅、更直观的体验。

  • 聊天编辑器操作:轻松查看或应用代码更改,并直接从聊天编辑器中检出拉取请求。
  • 无缝转换:从本地聊天以更好的连续性过渡到 GitHub 智能体任务。
  • 更好的会话渲染:对卡片和工具渲染进行了各种改进,以获得更好的视觉清晰度。
  • 性能提升:更快的会话加载速度,带来更灵敏的体验。

委托给编程智能体

我们继续扩大将 VS Code 中的本地任务委托给 Copilot 编程智能体的方法。

  • 用编程智能体修复 TODO

    TODO 开头的注释现在显示一个代码操作,用于快速启动编程智能体会话。

    Screenshot of a code action above a TODO comment called Delegate to coding agent.

  • 从聊天中委托 ( githubPullRequests.codingAgent.uiIntegration 在 VS Code 中打开 在 VS Code Insiders 中打开 )

    当您在聊天中执行委托给编程智能体 (Delegate to coding agent) 操作时,其他上下文(包括文件引用)现在会被转发给 GitHub 编程智能体。这使您能够在将任务移交给编程智能体完成之前精确地规划任务。一个新的聊天编辑器会被打开,并实时显示编程智能体的进度。

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

使用 Google 进行社交登录

使用 Google 帐户登录或注册 GitHub Copilot 的选项现已正式发布,并正在推广给 VS Code 中的所有用户。

Screenshot showing the sign in dialog showing the option to use a Google account.

您可以在 GitHub 博客公告中找到更多相关信息。

终端自动批准

设置 chat.tools.terminal.enableAutoApprove 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置在组织级别进行管理。请联系您的管理员进行更改。

自动批准终端命令可以极大地简化智能体交互,但也伴随着安全风险。此版本引入了对终端自动批准的多项改进,以增强可用性和安全性。

  • 您现在可以使用 chat.tools.terminal.enableAutoApprove 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置在组织级别进行管理。请联系您的管理员进行更改。 设置启用或禁用终端自动批准。此设置也可以由组织通过设备管理进行设置。

  • 在实际启用终端自动批准之前,您需要在聊天视图中通过下拉菜单明确选择加入。

    Screenshot of a terminal command in the Chat view, showing the Enable Auto Approve dropdown.

  • 在聊天视图中,您可以方便地为正在运行的命令添加自动批准规则,或打开配置设置。

    Screenshot that shows the three standard options are presented for "foo --arg && bar".

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

    这为命令提供了基本的支持,建议在更合适的情况下使用子命令,例如建议使用 npm test 规则而不是 npm

  • 为了提高自动批准命令的透明度,我们在聊天视图中显示了应用了哪条规则,这也使您能够配置该规则。

    Screenshot showing the new links added under the tool call in the Chat view for adding new auto approve rules.

  • 我们改进了默认设置以提供安全性并减少干扰。您可以通过打开 settings.json 文件查看设置的默认值,然后输入 chat.tools.terminal.autoApprove 并通过 Tab 键补全,查看完整的规则列表。

  • 包含反斜杠或正斜杠字符的非正则表达式规则现在被视为路径,不仅会批准该确切路径,还允许使用任一斜杠类型以及 ./ 前缀。使用 PowerShell 时,所有规则都被强制为不区分大小写。

  • 当智能体模式想要使用 curlwgetInvoke-RestMethodInvoke-WebRequest 从互联网拉取内容时,我们现在会显示警告,因为这是提示注入攻击的常见向量。

在我们的文档中了解更多关于终端自动批准的信息。

全局自动批准

全局自动批准自 v1.99 以来一直是一项实验性设置。我们观察到用户在未充分考虑后果的情况下启用了此设置。此外,一些用户认为启用 chat.tools.autoApprove 在 VS Code 中打开 在 VS Code Insiders 中打开 设置是启用终端自动批准的前提,但事实并非如此。

为了消除这些误解并进一步保护我们的用户,现在在首次尝试使用全局自动批准时,会出现一个名副其实且令人恐惧的警告,以便用户可以轻松退出并禁用该设置。

Screenshot of a warning dialog that appears when global auto approve is used for the first time.

该设置也已更改为更清晰的 chat.tools.global.autoApprove 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置在组织级别进行管理。请联系您的管理员进行更改。,且没有任何自动迁移,因此所有用户(无论是否意外)都需要重新去明确设置它。

数学渲染默认启用

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

聊天响应中的数学公式渲染现已正式发布并默认启用。您可以使用 chat.math.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 设置禁用此功能。

Screenshot of the Chat view, showing inline and block equations in a chat response.

此功能由 KaTeX 提供支持,支持行内和块级数学公式。行内数学公式可以通过将标记包裹在单美元符号 ($...$) 中编写,而块级数学公式使用两个美元符号 ($$...$$)。

聊天视图默认可见性

设置 workbench.secondarySideBar.defaultVisibility 在 VS Code 中打开 在 VS Code Insiders 中打开

当您首次打开工作区时,带有聊天视图的辅助侧栏默认可见,邀请您立即提问或启动智能体式会话。您可以使用 workbench.secondarySideBar.defaultVisibility 在 VS Code 中打开 在 VS Code Insiders 中打开 设置或通过聊天视图本身的下拉菜单来配置此行为。

Screenshot showing Chat view menu with the option to set the default Secondary Side Bar visibility.

改进的任务支持

  • 输入请求检测

    当您在智能体模式下运行任务或终端命令时,智能体现在可以检测到进程何时请求用户输入,并且会提示您在聊天中进行响应。如果您在出现提示时在终端中键入,提示将自动隐藏。当提供选项和描述(例如 [Y] 是 [N] 否)时,这些内容会显示在确认提示中。

  • 针对具有问题匹配器的任务的错误检测

    对于使用问题匹配器的任务,智能体现在会根据问题匹配器的结果收集并显示错误,而不是依赖于语言模型来评估输出。问题显示在聊天进度消息中的下拉菜单中,允许您直接导航到问题位置。这确保了只有在与当前任务执行相关时才会报告错误。

  • 复合任务支持

    智能体模式现在支持运行复合任务。当您运行复合任务时,智能体会指示每个依赖任务的进度和输出,包括任何用户输入提示。这实现了更复杂的工作流程,并提高了对多步任务执行的可见性。

    在下面的示例中,运行了 VS Code - Build 任务。系统会评估每个依赖任务的输出,并在响应和进度消息下拉菜单中向用户显示问题。

改进的终端支持

  • 将更多终端工具移至核心

    就像上个版本的 runInTerminal 工具一样,terminalSelectionterminalLastCommand 工具已从扩展移动到核心,这将带来普遍的可靠性改进。

  • 可配置的终端工具 shell 集成超时

    每当 runInTerminal 工具尝试创建终端时,它会等待一段时间让 shell 集成激活。如果您的 shell 启动特别慢(例如您有一个非常繁重的 PowerShell 配置文件),这可能会导致它等待之前固定的 5 秒超时,最终仍然失败。此超时现在可通过 chat.tools.terminal.shellIntegrationTimeout 在 VS Code 中打开 在 VS Code Insiders 中打开 设置进行配置。

  • 防止使用命令提示符 (Command Prompt)

    由于在命令提示符中实际上无法进行 shell 集成(至少在 Copilot 需要的功能方面),Copilot 现在选择使用 Windows PowerShell,它应该默认具有 shell 集成。当您的默认 shell 是命令提示符时,这应该能提高 runInTerminal 工具的可靠性。

    如果出于某种原因您希望 Copilot 使用命令提示符,目前无法实现。我们很可能会很快添加自定义 Copilot 使用的终端配置文件的功能,这在 #253945 中进行跟踪。

Todo List 工具

Todo list 工具可帮助智能体将复杂的多步任务分解为更小的任务,并报告进度以帮助您跟踪单个项目。我们对此工具进行了改进,现已默认启用。

工具进度显示在聊天视图顶部的 Todo 控件中,随着 todo 列表的处理,该控件会自动折叠,仅显示当前正在进行的任务。

跳过工具调用

当智能体请求确认工具调用时,您现在可以选择跳过工具调用,让智能体继续。您仍然可以通过聊天输入框取消请求或输入新请求。

我们升级了 #codebase 工具,以使用新的嵌入 (embeddings) 模型来对工作区中的代码进行语义搜索。此新模型为代码搜索提供了更好的结果。新的嵌入也使用了更少的存储空间,每个嵌入只需要我们之前模型磁盘存储大小的 6%。

我们将在接下来的几周内逐步推广这个新的嵌入模型。您的工作区将自动更新为使用此新嵌入模型,因此无需采取任何操作。如果您想在它推广给您之前试用,VS Code Insiders 已经在使用该新模型。

隐藏并禁用 GitHub Copilot AI 功能

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

我们引入了一项新设置 chat.disableAIFeatures 在 VS Code 中打开 在 VS Code Insiders 中打开 ,用于禁用和隐藏 GitHub Copilot 提供的内置 AI 功能,包括聊天、代码补全和下一次编辑建议。

与我们之前的解决方案相比,该设置具有以下优势

  • 在您的设备间同步,除非您明确禁用它
  • 如果已安装 Copilot 扩展,则将其禁用
  • 按配置文件或工作区配置设置,从而轻松选择性地禁用 AI 功能

“隐藏 AI 功能”命令已重命名以反映此更改,现在将在设置编辑器中显示此新设置。

注意:之前隐藏 AI 功能的用户将继续看到 AI 功能处于隐藏状态。如果您想在设备间同步您的选择,可以另外更新该设置。

MCP

支持服务器指令

VS Code 现在读取 MCP 服务器指令,并将它们包含在其基础提示符中。

MCP 自动发现默认禁用

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

VS Code 支持自动发现安装在其他应用程序(如 Claude Code)中的 MCP 服务器。随着 MCP 支持在 VS Code 中的成熟,自动发现现已默认禁用,但您可以使用 chat.mcp.discovery.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 设置重新启用它。

启用 MCP

设置 chat.mcp.access 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置在组织级别进行管理。请联系您的管理员进行更改。

之前控制 MCP 服务器是否可以在 VS Code 中运行的 chat.mcp.enabled 设置已迁移到具有更具描述性选项的新 chat.mcp.access 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置在组织级别进行管理。请联系您的管理员进行更改。 设置中

  • all:允许所有 MCP 服务器运行(等同于之前 true 的值)
  • none:完全禁用 MCP 支持(等同于之前 false 的值)

辅助功能

聚焦聊天确认操作

我们添加了一个命令:聚焦聊天确认 (Focus Chat Confirmation) (kb(workbench.action.chat.focusConfirmation)),它会聚焦确认对话框(如果存在),或者向屏幕阅读器用户通告不需要确认。

代码编辑

可配置的内联建议延迟

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

新的 editor.inlineSuggest.minShowDelay 在 VS Code 中打开 在 VS Code Insiders 中打开 设置使您能够配置键入后内联建议出现的快慢。如果您觉得建议出现得太快并干扰了您的输入,这会很有用。

编辑器体验

Windows 上的窗口边框颜色支持

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

我们很高兴在 Windows 上添加了一个新的 window.border 在 VS Code 中打开 在 VS Code Insiders 中打开 设置,使您能够在 VS Code 窗口周围显示彩色边框。该设置具有以下选项:

  • default:遵循颜色主题设置,回退到 Windows 设置
  • system:仅遵循 Windows 设置(窗口标题强调色)
  • off:禁用边框颜色
  • <color>:十六进制、RGB、RGBA、HSL、HSLA 格式的特定颜色

您可以按工作区配置颜色,从而更容易区分哪个窗口打开了哪个工作区。

Screenshot of several VS Code windows with different border colors.

当您将 window.border 在 VS Code 中打开 在 VS Code Insiders 中打开 配置为 default 时,主题可以分别使用 window.activeBorderwindow.inactiveBorder 颜色键来设置活动窗口和非活动窗口的边框颜色。您可以进一步从 workbench.colorCustomizations 在 VS Code 中打开 在 VS Code Insiders 中打开 设置覆盖这些颜色。

管理扩展帐户偏好设置

我们在命令面板中添加了帐户:管理扩展帐户偏好设置 (Accounts: Manage Extension Account Preferences) 命令。调用该命令时,它会显示一个有权访问身份验证帐户的扩展列表,并允许您更改这些扩展使用的帐户。您甚至可以直接从列表中登录新帐户。

这是基于我们一年前添加的帐户管理功能

编辑器选项卡索引

设置 workbench.editor.showTabIndex 在 VS Code 中打开 在 VS Code Insiders 中打开

您现在可以在选项卡的标签中呈现编辑器选项卡的索引。当您打开了许多选项卡并希望使用键盘快捷键在它们之间快速导航时,这会很有帮助。通过 workbench.editor.showTabIndex 在 VS Code 中打开 在 VS Code Insiders 中打开 设置启用此功能。

Screenshot of editor tabs with numbers in front of them, indicating their index.

编辑器选项卡栏滚动条可见性

设置 workbench.editor.titleScrollbarVisibility 在 VS Code 中打开 在 VS Code Insiders 中打开

workbench.editor.titleScrollbarVisibility 在 VS Code 中打开 在 VS Code Insiders 中打开 设置使您能够控制编辑器选项卡栏中的滚动条何时可见。默认值 auto 仅在选项卡溢出且鼠标悬停在选项卡上时显示滚动条。您也可以将其设置为 visible 以在选项卡溢出时始终显示滚动条,或设置为 hidden 以从不显示它。

问题报告改进

当通过内置问题报告器在 VS Code 或扩展中报告问题时,您现在可以通过报告按钮上的下拉菜单选择在 GitHub 上创建 (Create on GitHub)在 GitHub 上预览 (Preview on GitHub)。如果按钮未填充下拉菜单且仅显示“创建”或“预览”,这很可能意味着您仍在加载扩展数据,或者需要确保您已使用提供正确作用域的 GitHub 帐户登录。

Screenshot of a dropdown showing Create on Github and Preview on Github in the issue reporter.

Notebook

改进的 NES 建议(实验性)

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

我们正在试验改善 Notebook 的下一次编辑建议 (Next Edit Suggestions) 的质量。目前,语言模型在生成建议时只能访问活动单元格的内容。启用 github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 设置后,语言模型可以访问整个 Notebook,从而使其能够生成更准确、更高质量的下一次编辑建议。

源代码管理

预览和迁移 Git 工作树更改

您现在可以通过在源代码控制更改视图中右键单击工作树文件以打开上下文菜单,并选择与工作区比较 (Compare with Workspace),来预览工作树文件与当前工作区之间的差异。

Screenshot of the context menu shown in the SCM view on a changed file in a worktree, with the Compare with Workspace option selected.

审查更改后,您可以使用命令面板中的迁移工作树更改... (Migrate Worktree Changes...) 命令 () 将工作树中的所有更改合并到当前工作区中。这使得在多个工作树之间工作并将更改有选择地带回主仓库变得很容易。

了解更多关于 VS Code 中的 Git 工作树的信息。

终端

终端窗口的可发现性和润色

一个常见的请求是允许在单独的窗口中打开终端。此功能已经存在了大约一年半,但并不是特别容易被发现。在此次迭代中,我们为该功能添加了多个入口点:

  • 新命令 ⌃⇧⌥` (Windows, Linux Ctrl+Shift+Alt+`)
  • 空编辑器和选项卡菜单现在有一个新建终端 (New Terminal) 条目。
  • 新建终端下拉菜单已重新调整,现在有一个新建终端窗口 (New Terminal Window) 条目。
  • 顶级终端菜单现在有一个新建终端窗口 (New Terminal Window) 条目。

我们还润色了这些新终端窗口以紧凑模式打开的体验。如果您向窗口添加新选项卡,它会自动退出紧凑模式。

Screenshot of the terminal window open in compact mode, hiding tabs to make more room for terminal content.

终端编辑器中的终端操作

终端视图中可用的操作(新建终端下拉菜单、清除终端等)现在也适用于编辑器区域和终端窗口中的终端。

Screenshot of different terminal actions in the editor actions menu.

就像在终端视图中一样,您可以右键单击操作区域以将它们从溢出菜单中移出。

终端 IntelliSense 改进(预览)

终端 IntelliSense 在此版本中得到了多项改进:

  • 多项性能改进,这对 Windows 上的体验影响显著。
  • 由于移除了在 Windows 上不可用的 sed 依赖,git 补全在 Windows 上现在更加可靠。
  • git 补全现在具有熟悉的图标来表示提交、分支、远程、暂存和标签。 显示 git checkout 补全中标签和分支的新图标的截图
  • 添加了大量补全规范:adb, basename, bundle, clear, cut, date, dd, diff, dig, dirname, docker-compose, docker, dotnet, env, export, fdisk, fmt, fold, gh, go, htop, id, jq, ln, lsblk, lsof, mount, nl, od, paste, ping, pkill, readlink, rsync, ruby, ruff, sed, seq, shred, sort, source, split, stat, su, sudo, tac, tar, tee, time, tr, traceroute, tree, truncate, uniq, unzip, wc, where, whereis, which, who, xargs, xxd, yo, zip

终端粘滞滚动 (Sticky Scroll) 改进

我们现在默认启用了终端粘滞滚动。我们进行了一些改进以获得更好的体验,例如改进了在使用分页器 (pager) 时的行为。终端粘滞滚动现在与 editor.tabFocusMode 在 VS Code 中打开 在 VS Code Insiders 中打开 设置兼容。

语言

JavaScript 和 TypeScript

在审查使用数据后,我们决定移除内置的 bower.json IntelliSense。Bower 自 2017 年起已被弃用,我们的内置支持使用率很低,且未得到积极维护。

Bower 建议用户迁移到 npmyarn。VS Code 对 Bower 的持续支持可以由扩展提供。

Python

Python 环境扩展对 Pipenv 的支持

Pipenv 环境现在可以像在 Python 扩展中一样被发现和选择。此外,它们出现在 Python 侧栏的环境管理器 (Environment Manager) 视图中,在那里它们被分组并与其他环境类型一起显示。

Screenshot showing the Python sidebar with Pipenv environments expanded.

配置环境变量注入

一个新设置 python.useEnvFile 在 VS Code 中打开 在 VS Code Insiders 中打开 ,控制当启用 Python 环境扩展时,来自 .env 文件和 python.envFile 在 VS Code 中打开 在 VS Code Insiders 中打开 设置的环境变量是否被注入到终端中。

Python 环境扩展改进

Python 环境扩展作为向稳定版用户受控推广的一部分,继续收到错误修复和改进。要在推广期间使用 Python 环境扩展,请确保已安装该扩展,并将以下内容添加到您的 VS Code settings.json 文件中:"python.useEnvironmentsExtension": true

Pylance AI 驱动的悬停摘要(实验性)

当使用 Pylance 的最新预发布版本时,Python 现在可以使用新的实验性 AI 悬停摘要功能。当您启用 python.analysis.aiHoverSummaries 在 VS Code 中打开 在 VS Code Insiders 中打开 设置时,您可以即时获取尚未拥有文档的符号的有用摘要。这使得理解不熟悉的代码变得更容易,并在您探索 Python 项目时提高工作效率。AI 悬停摘要目前可供 GitHub Copilot Pro、Pro+ 和 Enterprise 用户使用。

我们期待很快将此实验性体验带到稳定版本的扩展中。

运行代码片段工具

Pylance 运行代码片段工具使 GitHub Copilot 能够完全在内存中执行 Python 片段,而不是依赖 python -c "code" 等终端命令或创建临时文件来执行。它自动使用为您工作区配置的正确 Python 解释器,并消除了终端执行期间有时会出现的 shell 转义和引用问题。

其突出的好处之一是它提供的清晰、格式良好的输出,stdout 和 stderr 交错以保持清晰。这使其非常适合在与 GitHub Copilot 配合使用智能体模式时测试小段代码、运行快速脚本、验证 Python 表达式或检查导入,所有这些都在您的工作区上下文中进行。

要试用它,请确保使用 Pylance 扩展的最新预发布版本。然后,您可以通过聊天视图中的添加上下文... (Add context...) > 工具 (Tools) 菜单选择 pylancerunCodeSnippet 工具。

注意:与所有 AI 生成的代码一样,请确保在允许执行此工具之前检查生成的代码。审查代码的逻辑和意图可确保其符合您项目的目标并保持安全和正确。

在所有 Python 文档中启用 Pylance IntelliSense

python.analysis.supportAllPythonDocuments 设置已从 Pylance 最新预发布版本中移除,Pylance IntelliSense 现在默认在所有 Python 文档中启用,包括终端和差异视图。这意味着无论您在 VS Code 中的何处使用 Python,都可以获得丰富的代码补全、悬停和代码导航。

激活钩子 (Activation hooks)

Python 激活钩子现在可以从 shell 集成脚本运行,而无需 Python 环境扩展修改您的 shell 配置文件。当 python-envs.terminal.autoActivationType 在 VS Code 中打开 在 VS Code Insiders 中打开 设置为 shellStartup 时,这提供了更可靠的终端激活,并且重要的是,确保了 Copilot 终端按预期激活。

对扩展的贡献

GitHub 拉取请求

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

  • 侧栏内容在窄窗口上折叠
  • 拉取请求和问题 Webview 在重新加载后还原
  • 新的“TODO”代码操作让您可以直接委托给 Copilot 编程智能体
  • 子模块可以通过 githubPullRequests.ignoreSubmodules 在 VS Code 中打开 在 VS Code Insiders 中打开 忽略

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

扩展开发

针对扩展启动终端的 shellIntegrationNonce

shellIntegrationNonce 现在可以传递给 TerminalOptionsExtensionTerminalOptions 中的 createTerminal。这使扩展能够控制 Nonce,Nonce 用于验证 shell 集成转义序列中的命令。

语言模型聊天提供程序 API (Language Model Chat Provider API)

在此次迭代中,我们最终确定了 LanguageModelChatProviders API。这使扩展能够贡献一个或多个语言模型,无论是云托管还是本地模型。安装扩展后,用户可以通过聊天中的模型选择器选择这些模型。

已经有多个扩展利用此 API 通过其他模型扩展 VS Code 中的聊天功能,包括 AI Toolkit for VS CodeCerebras InferenceHugging Face

您可以在我们的 语言模型聊天提供程序扩展指南 或我们的 扩展示例 中了解有关如何利用此 API 的更多信息。

注意:通过此 API 提供的模型目前仅供 个人 GitHub Copilot 计划的用户使用。

提议的 API

身份验证:支持 getSession 中的 WWW-Authenticate 挑战

HTTP 中一个公认的模式是,对 API 的请求可以返回 401 Unauthorized 状态代码,并带有定义身份验证挑战 (auth challenges)WWW-Authenticate 标头。这些本质上是 API 需要的东西,以便解决 401 错误。

我们引入了一个提议的 API,允许将这些挑战传递并处理给身份验证提供程序。首先,从调用方一侧,您现在可以像这样传入挑战:

export interface AuthenticationWWWAuthenticateRequest {
  /**
   * The raw WWW-Authenticate header value that triggered this challenge.
   */
  readonly wwwAuthenticate: string;

  /**
   * Optional scopes for the session.
   */
  readonly scopes?: readonly string[];
}

export namespace authentication {
  // NOTE: The only change is the 2nd parameter, the other variations of `getSession` have the same change
  export function getSession(
    providerId: string,
    scopeListOrRequest: ReadonlyArray<string> | AuthenticationWWWAuthenticateRequest,
    options?: AuthenticationGetSessionOptions
  ): Thenable<AuthenticationSession | undefined>;
}

在身份验证提供程序一侧,我们向 AuthenticationProvider 添加了以下两个新函数:

getSessionsFromChallenges(constraint: AuthenticationConstraint, options: AuthenticationProviderSessionOptions): Thenable<readonly AuthenticationSession[]>;
createSessionFromChallenges(constraint: AuthenticationConstraint, options: AuthenticationProviderSessionOptions): Thenable<AuthenticationSession>;

并且身份验证提供程序在通过 AuthenticationProviderOptions 中的 supportsChallenges: true 注册时,可以声明对挑战的支持。

示例:Azure MFA

这项工作最初是由于即将到来的在 Azure API 中要求 MFA 的更改而完成的,所以让我们也将其用作此 API 的一个示例。

假设您有一个在 Azure 中创建资源的扩展。它所做的只是调用 Azure RM API,没有什么特别的……您的扩展可能已经熟悉调用 vscode.authentication.getSession 来获取身份验证会话,主要是访问令牌,可用于调用此 API。现在,当您最初铸造该身份验证会话时,根据您的组织,您可能已经或可能没有通过多因素身份验证 (MFA)。如果您通过了,那么 Azure API 会很满意。如果您没有通过 MFA,那么 Azure 的 API 将返回 401 和 WWW-Authenticate 标头。

现在有了我们在 VS Code 中的新 API……您所要做的就是获取该标头值,并将其直接传入 vscode.authentication.getSession

const newRequest = {
  wwwAuthenticate: theRawHeaderValue,
  scopes: scopesFromPreviousRequest
};
const sessionWithMFA = await vscode.authentication.getSession(
  'microsoft',
  newRequest,
  options
);

这会将该标头值传递给 microsoft 身份验证提供程序,身份验证提供程序将负责铸造一个满足挑战的会话。

后续步骤

下一次迭代,我们将最终确定此提议的 getSession(即扩展请求身份验证)部分,因此如果您对此或 AuthenticationProvider 更改的形状有任何反馈,请告诉我们!您可以在 GitHub 上找到完整的提议

关于 WWW-Authenticate 即将启用的另一个用例是,MCP 服务器发出 WWW-Authenticate 标头,要求提供具有更多作用域的令牌。MCP 规范中有一个关于此的提议

辅助侧栏中的视图容器

扩展可以将视图容器贡献给 activitybarpanel。我们现在还添加了对贡献到 secondarySidebar 的支持。这目前处于 contribSecondarySideBar 提议 API 之后。我们希望很快能最终确定此 API。

工程

在 VS Code 的内部开发循环中探索 Playwright 和 Playwright MCP

VS Code 的 Agent 模式及其他 AI 功能已成为 VS Code 团队构建 VS Code 本身的核心工具。我们希望探索如何进一步应用这些功能,使 VS Code 的内部开发循环变得更加出色。为此,我们一直在尝试扩展现有的冒烟测试 自动化项目(使用 Playwright),以创建一个能够驱动本地 VS Code 实例的 MCP 服务器。这使得我们现有的代理流程(此前侧重于从构建/测试时期的构件(如编译、检查工具、测试等)接收上下文)现在也能与实时运行的 VS Code 实例进行交互……从而验证更改在运行时是否达到了预期效果。

这项工作的初步内容可在 vscode 仓库的 test/mcp 文件夹中找到。如果您有兴趣尝试,上手非常简单。

  1. 请按照 贡献指南 运行本地版本的 Code OSS。
  2. 然后,您可以在 Agent 模式下使用 我们(目前还很简陋的)提示词文件,输入 /playwright 您的提问 来进行询问。

这仍处于早期探索阶段,但我们对它为我们在内部开发循环中进一步利用 AI 所带来的可能性感到兴奋。基础工作已经铺平,我们将继续对其进行迭代,使其对团队更加稳健和有用。

这项工作最近在 VS Code Insiders 播客中进行了介绍,我们讨论了此次探索背后的动机以及一些技术细节。您可以收听该期 VS Code Insiders 播客

值得注意的修复

  • vscode#151902 - 终端:1.68 版本中选择时复制 + 新高亮导致在 CMD+F 时复制了之前的项
  • vscode#222075 - 在分页器中使用向下翻页时,终端粘滞滚动可能会出现 1 帧的闪烁
  • xtermjs/xterm.js#5390 - 修复退出备用缓冲区后的滚动条瞬移问题

感谢

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

问题跟踪

对我们问题跟踪的贡献

拉取请求

vscode 的贡献

vscode-copilot-chat 的贡献

vscode-eslint 的贡献

vscode-extension-samples 的贡献

vscode-js-debug 的贡献

vscode-jupyter 的贡献

vscode-languageserver-node 的贡献

vscode-markdown-languageservice 的贡献

vscode-markdown-tm-grammar 的贡献

vscode-pull-request-github 的贡献

vscode-python-environments 的贡献

vscode-vsce 的贡献

debug-adapter-protocol 的贡献

language-server-protocol 的贡献

node-jsonc-parser 的贡献

python-environment-tools 的贡献

我们非常感谢大家在新功能准备就绪后立即进行试用,请经常回来查看并了解新功能。

如果您想阅读以前 VS Code 版本的发行说明,请访问 code.visualstudio.com 上的更新页面。

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