现已发布!阅读有关一月份的新功能和修复。

2025 年 4 月 (版本 1.100)

发布日期:2025 年 5 月 8 日

更新:在 VS Code 稳定版中默认启用下一个编辑建议 (NES)(更多...)。

更新 1.100.1:此更新解决了这些 安全问题

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

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

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


欢迎使用 Visual Studio Code 的 2025 年 4 月版本。此版本中有许多更新,希望您会喜欢,主要亮点包括

  • 聊天

    • 自定义指令和可重用提示词(更多...)。
    • 使用 GitHub、扩展和 Notebook 的工具获得更智能的结果(更多...)。
    • MCP 支持图像和可流式传输的 HTTP(更多...)。
  • 聊天性能

    • 重复聊天请求的响应更快(更多...)。
    • 代理模式下编辑更快(更多...)。
  • 编辑器体验

    • 改进了对聊天和编辑器的多窗口支持(更多...)。
    • 暂存的更改更容易识别(更多...)。

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

聊天

提示词和指令文件

您可以通过使用基于 Markdown 的指令和提示词文件,根据您的具体编码实践和技术栈来定制您在 VS Code 中的 AI 体验。我们统一了这两个相关概念的实现和用法,但它们各自有不同的目的。

指令文件

设置

chat.instructionsFilesLocations
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

指令文件(也称为自定义指令或规则)提供了一种方法,可以在 Markdown 文件中描述 AI 模型的通用准则和上下文,例如代码风格规则或应使用哪些框架。指令文件不是独立的代码聊天请求,而是提供您可以应用于聊天请求的上下文。

指令文件使用 .instructions.md 文件后缀。它们可以位于您的用户数据文件夹或工作区中。此

chat.instructionsFilesLocations
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置列出了包含指令文件的文件夹。

您可以将指令手动附加到特定的聊天请求,或者可以自动添加它们

  • 要手动添加它们,请在“聊天”视图中使用“添加上下文”按钮,然后选择“指令...”。或者,从命令面板使用“聊天: 附加指令...”命令。这将弹出一个选择器,允许您选择现有的指令文件或创建新的文件进行附加。

  • 要自动将指令添加到提示词中,请在指令文件中添加 applyTo 前端内容(Front Matter)头,以指示指令应用于哪些文件。如果聊天请求包含与给定 glob 模式匹配的文件,则会自动附加指令文件。

    下面的示例为 TypeScript 文件提供了指令(applyTo: '**/*.ts'

    ---
    applyTo: '**/*.ts'
    ---
    Place curly braces on separate lines for multi-line blocks:
    if (condition)
    {
      doSomething();
    }
    else
    {
      doSomethingElse();
    }
    

您可以使用命令“聊天: 新建指令文件...”来创建指令文件。此外,在用户数据文件夹中创建的文件可以通过设置同步服务自动同步到多台用户计算机上。请确保在“备份和同步设置...”对话框中选中“提示词和指令”选项。

在我们的文档中了解有关指令文件的更多信息。

提示文件

设置

chat.promptFilesLocations
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

提示词文件描述了一个独立的、完整的聊天请求,包括提示词文本、聊天模式和要使用的工具。提示词文件对于为常见任务创建可重用的聊天请求非常有用。例如,您可以添加一个用于创建前端组件或执行安全审查的提示词文件。

提示词文件使用 .prompt.md 文件后缀。它们可以位于您的用户数据文件夹或工作区中。此

chat.promptFilesLocations
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置列出了查找提示词文件的文件夹。

有几种方法可以运行提示词文件

  • 在聊天输入字段中键入 /,后跟提示词文件名。一个截图,显示使用斜杠命令在聊天视图中运行提示词。

  • 在编辑器中打开提示词文件,然后按编辑器工具栏中的“播放”按钮。这使您可以快速迭代提示词,并在不切换回聊天视图的情况下运行它。一个截图,显示使用编辑器中的播放按钮运行提示词。

  • 使用命令面板中的“聊天: 运行提示词文件...”命令。

提示词文件可以具有以下前端内容(Front Matter)元数据头,以指示如何运行它们

  • mode:调用提示词时使用的聊天模式(askeditagent 模式)。
  • tools:如果 modeagent,则为该提示词可用的工具列表。

以下示例显示了一个用于生成发行说明的提示词文件,它在代理模式下运行,并且可以使用一组工具

---
mode: 'agent'
tools: ['getCurrentMilestone', 'getReleaseFeatures', 'file_search', 'semantic_search', 'read_file', 'insert_edit_into_file', 'create_file', 'replace_string_in_file', 'fetch_webpage', 'vscode_search_extensions_internal']
---
Generate release notes for the features I worked in the current release and update them in the release notes file. Use [release notes writing instructions file](.github/instructions/release-notes-writing.instructions.md) as a guide.

要创建提示词文件,请使用命令面板中的“聊天: 新建提示词文件...”命令。

在我们的文档中了解有关提示词文件的更多信息。

改进和说明

  • 指令文件和提示词文件现在有了自己的语言 ID,可以在任何打开的文档的语言模式对话框中配置(分别为“Prompt”和“Instructions”)。例如,这允许将未命名的文档用作临时的提示词文件,然后再将它们保存到磁盘。
  • 我们将“聊天: 使用提示词”命令重命名为“聊天: 运行提示词”。此外,该命令现在会立即运行所选的提示词,而不是像以前那样将其作为聊天上下文附加。
  • 这两种文件类型现在也支持其头中的 description 元数据,为简短且用户友好的提示词摘要提供了一个通用位置。将来,计划将此头与 applyTo 头一起用作确定文件是否需要与聊天请求自动包含的规则(例如,description: 'Code style rules for front-end components written in TypeScript.'

代理模式编辑更快

我们在代理模式中实现了对 OpenAI 的应用补丁编辑格式 (GPT 4.1 和 o4-mini) 和 Anthropic 的替换字符串工具 (Claude Sonnet 3.7 和 3.5) 的支持。这意味着您可以从显著更快的编辑中受益,尤其是在大文件中。

OpenAI 模型的更新在 VS Code Insiders 中默认开启,并正逐步推广到稳定版。Anthropic 的更新在稳定版和 Insiders 版本中都可供所有用户使用。

聊天中的基础模型

我们正在逐步在 VS Code 的聊天中将 GPT-4.1 作为默认基础模型推出。您可以随时使用聊天视图中的模型切换器更改为其他模型。

使用 #githubRepo 工具搜索 GitHub 存储库中的代码

想象一下,您需要询问有关 GitHub 存储库的问题,但您的编辑器中没有打开它。例如,您想知道 microsoft/vscode 存储库中特定函数的实现方式。

您现在可以使用 #githubRepo 工具搜索您可以访问的任何 GitHub 存储库中的代码片段。此工具接受 user/repo 作为额外输入。例如,“how to implement factory pattern in TS #githubRepo microsoft/vscode”。

您还可以使用自定义指令来提示何时以及如何使用此工具,如下例所示

---
applyTo: '**'
---
Use the `#githubRepo` tool with `microsoft/vscode` to find relevant code snippets in the VS Code codebase.
Use the `#githubRepo` tool with `microsoft/typescript` to answer questions about how TypeScript is implemented.

Screenshot showing using the #githubRepo tool in agent mode with hints from instructions files.

如果您想询问当前正在处理的存储库,您只需使用#codebase 工具

此外,#githubRepo 工具仅用于搜索相关代码片段。GitHub MCP 服务器提供用于处理 GitHub 问题和拉取请求的工具。了解如何在 VS Code 中添加 MCP 服务器

使用扩展工具查找 Marketplace 扩展

在聊天中使用扩展工具 (#extensions) 从 Marketplace 查找扩展。根据您的聊天提示词,该工具会自动调用,或者您可以用 #extensions 在提示词中明确引用它。该工具返回与您的查询匹配的扩展列表。您可以直接从结果中安装扩展。

网页获取工具的改进

上个月,我们推出了获取工具 (#fetch),用于从聊天中直接检索网页内容,并将其作为上下文包含在您的提示词中。如果您错过了该版本说明,请查看获取工具的初始发布说明和示例。

在此迭代中,我们对该工具进行了一些重大更改,包括

  • 整个页面作为上下文:我们现在添加整个页面作为上下文,而不是一个子集。借助更大的上下文窗口,我们可以为模型提供整个页面。例如,现在可以询问需要尽可能多页面内容的摘要问题。如果您确实设法填满了上下文窗口,获取工具足够智能,可以排除页面中不太相关的部分。这样,您就不会超过上下文窗口限制,同时仍保留重要部分。
  • 标准化的页面格式 (Markdown):以前,我们以自定义分层格式格式化获取的网页,该格式可以完成工作,但由于其自定义性质,有时难以理解。我们现在将获取的网页转换为 Markdown,这是一种标准化语言。这提高了相关性检测的可靠性,并且是大多数语言模型都非常熟悉的一种格式,因此它们可以更轻松地进行推理。

我们很想听听您如何使用获取工具,以及您希望它具备哪些功能!

聊天输入改进

我们对聊天输入框进行了一些改进

  • 附件:当您使用 # 在提示词文本中引用上下文时,它们现在也显示为附件胶囊。这使得更容易理解发送给语言模型的内容。
  • 上下文选择器:我们简化了上下文选择器,以便更容易选择文件、文件夹和其他附件类型。
  • 完成按钮:我们听取了您对“完成”按钮的反馈并将其移除!不再有关于意外会话结束的困惑。现在,只有在您创建新聊天时我们才会启动新会话(⌘N (Windows, Linux Ctrl+N))。

聊天模式键盘快捷方式

键盘快捷方式 ⌃⌘I (Windows, Linux Ctrl+Alt+I) 仍然只打开“聊天”视图,但 ⇧⌘I (Windows Ctrl+Shift+I, Linux Ctrl+Shift+Alt+I) 快捷方式现在会打开“聊天”视图并切换到代理模式。如果您想为其他聊天模式设置键盘快捷方式,每个模式都有一个命令

  • workbench.action.chat.openAgent
  • workbench.action.chat.openEdit
  • workbench.action.chat.openAsk

自动修复代理模式编辑中的诊断信息

设置

github.copilot.chat.agent.autoFix
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

如果代理模式中的文件编辑引入了新错误,代理模式现在可以检测到它们,并自动建议后续编辑。这意味着您无需发送后续提示词来要求代理模式修复任何错误。您可以使用 禁用此行为

github.copilot.chat.agent.autoFix
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
.

代理模式下撤消和手动编辑的处理

以前,在代理模式会话期间进行手动编辑可能会使模型感到困惑。现在,会向代理报告您的更改,并在必要时重新读取文件,然后再编辑可能已更改的文件。

会话摘要和提示词缓存

我们对代理模式提示词的构建方式进行了一些更改,以优化提示词缓存。提示词缓存是一种通过维护提示词的稳定前缀来加快模型响应速度的方法。下一个请求可以从该前缀恢复,结果是每个请求都应该稍快一些。这在重复的一系列带有大上下文的请求中特别有效,就像您通常在代理模式中所拥有的那样。

当您的会话变长或上下文变得非常大时,您可能会在代理模式会话中看到“已摘要的会话历史记录”消息

Screenshot showing a summarized conversation message in the Chat view.

我们不会将整个会话保留为 FIFO(先进先出),打破缓存,而是将到目前为止的会话压缩成最重要的信息摘要和您任务的当前状态。这使提示词前缀保持稳定,并使您的响应保持快速。

MCP 支持可流式传输的 HTTP

此版本为模型上下文协议 (MCP) 服务器添加了对新的可流式传输的 HTTP 传输的支持。可流式传输的 HTTP 服务器的配置方式与现有的 SSE 服务器相同,并且我们的实现向后兼容 SSE 服务器

{
  "servers": {
    "my-mcp-server": {
      "url": "https://:3000/mcp"
    }
  }
}

在 VS Code 中了解有关MCP 支持的更多信息。

MCP 支持图像输出

我们现在支持 MCP 服务器在工具输出中生成图像。

请注意,并非所有语言模型都支持从工具输出中读取图像。例如,尽管 GPT-4.1 具有视觉能力,但它目前不支持从工具中读取图像。

来自 MCP 服务器的增强的输入、输出和进度

我们增强了显示 MCP 服务器工具输入和输出的用户界面,并且还添加了对 MCP 新进度消息的支持。

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

MCP 配置生成使用输入

为帮助保护您的机密信息安全,MCP: 添加服务器命令生成的 AI 辅助配置现在为任何机密信息生成 inputs,而不是将它们内联到结果配置中。

内联聊天 V2 (预览版)

设置

inlineChat.enableV2
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

我们一直在研究内联聊天 ⌘I (Windows, Linux Ctrl+I) 的经过重新设计的版本。它的主题仍然是“将聊天带入代码”,但在后台它使用与聊天编辑相同的逻辑。这意味着可以更好地利用可用上下文和更好的代码编辑策略。您可以通过 启用内联聊天 v2

inlineChat.enableV2
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

此外,还有一个更轻量级的用户体验可以选择启用。使用

inlineChat.hideOnRequest
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置后,内联聊天在发出请求后会隐藏。然后它会最小化到聊天编辑覆盖窗口中,这使得接受或丢弃更改,或恢复内联聊天控件成为可能。

选择 UI 元素并将其附加到聊天(实验性)

设置

chat.sendElementsToChat.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

在开发 Web 应用程序时,您可能希望询问有关 Web 页面的特定 UI 元素的聊天内容。您现在可以使用内置的简单浏览器将 UI 元素作为上下文附加到聊天中。

通过内置的简单浏览器打开任何本地托管的站点(使用简单浏览器: 显示命令启动它)后,现在会显示一个新的工具栏,您可以在其中选择开始来选择您想要的站点的任何元素。这会附加所选元素的屏幕截图以及该元素的 HTML 和 CSS。

配置附加到聊天中的内容

  • chat.sendElementsToChat.attachCSS
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    : 启用或禁用附加相关的 CSS
  • chat.sendElementsToChat.attachImages
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    : 启用或禁用附加所选元素的屏幕截图

此实验性功能在所有简单浏览器中默认启用,但可以通过 禁用

chat.sendElementsToChat.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
.

在代理模式下创建和运行任务(实验性)

设置

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

在上一个版本中,我们引入了

github.copilot.chat.newWorkspaceCreation.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
(实验性)设置,以启用带有代理模式的工作区创建。

现在,在此创建流程的最后,系统会提示您为启动应用程序或项目创建并运行一个任务。这简化了项目启动过程,并实现了任务的轻松重用。

辅助功能

合并编辑器改进

合并编辑器现在更易于访问。要了解可用操作,请在合并编辑器内打开可访问性帮助对话框(⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1))。主要操作包括合并编辑器:完成合并⌘Enter (Windows, Linux Ctrl+Enter))和切换合并编辑器输入⇧⌘T (Windows, Linux Ctrl+Shift+T))。当前焦点所在的输入现在也会向辅助技术播报。

下一个编辑建议增强功能

新的设置

accessibility.signals.nextEditSuggestion
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
会在可用的预测建议时通知您。通过可访问视图(⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2))查看和接受建议。此外,
accessibility.signals.diffLineAdded
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
accessibility.signals.diffLineRemoved
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
在导航时提供音频提示,使差异审阅更易于访问。

从可访问视图审阅 Copilot 用户请求

代理模式下,工具调用或终端命令有时需要用户授权才能运行。请在可访问视图(⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2))中审阅这些操作。

独特的辅助功能声音

accessibility.signals.save.sound
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
现在有了自己独特的声音,不再与
accessibility.signals.terminalCommandSucceeded.sound
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
共享音频。

编辑器体验

浮动窗口模式

VS Code 中的浮动窗口允许您将编辑器和某些视图移出主窗口,放入一个更小的窗口中,以实现轻量级的多窗口设置。浮动窗口可以具有两种新模式

  • 紧凑模式:我们隐藏某些 UI 元素,为实际内容腾出更多空间
  • 总在最前:窗口将保持在所有其他窗口之上,直到您离开此模式

下面是如何将浮动编辑器窗口切换到紧凑模式的示例

当我们创建新窗口中的聊天时,默认使用紧凑模式。结合始终在最前(always on top)的选项,您可以始终让聊天视图可用,以便随时提问!

如果您更喜欢使用键盘快捷方式执行这些操作,我们引入了新命令

  • workbench.action.toggleWindowAlwaysOnTop:切换总在最前模式
  • workbench.action.enableWindowAlwaysOnTop:设置浮动窗口总在最前
  • workbench.action.disableWindowAlwaysOnTop:设置浮动窗口为普通
  • workbench.action.toggleCompactAuxiliaryWindow:切换紧凑模式
  • workbench.action.enableCompactAuxiliaryWindow:启用紧凑模式
  • workbench.action.disableCompactAuxiliaryWindow:禁用紧凑模式

注意:即使在紧凑模式下,您也可以创建复杂的编辑器布局并打开其他编辑器。

次级侧边栏的默认可见性

设置

workbench.secondarySideBar.defaultVisibility
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

默认情况下,当您打开新工作区或窗口时,次级侧边栏会隐藏。使用新设置

workbench.secondarySideBar.defaultVisibility
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
,您可以控制次级侧边栏是否应在新工作区或窗口中自动打开。您可以从以下选项中选择

  • hidden:这是默认设置,它会隐藏次级侧边栏
  • visibleInWorkspace:如果您打开文件夹或多根工作区,它会打开次级侧边栏
  • visible:它将始终打开次级侧边栏

请注意,工作区或窗口打开后,可见性将成为工作区状态并覆盖设置值。如果您关闭次级侧边栏,它将在此工作区或窗口中保持关闭状态。

强制的扩展签名验证

扩展签名验证现在在所有平台上都是必需的:Windows、macOS 和 Linux。以前,此验证仅在 Windows 和 macOS 上强制执行。通过此版本,Linux 现在也强制执行扩展签名验证,确保在安装前对所有扩展进行适当验证。

此更改通过阻止安装潜在恶意扩展进一步加强了安全性。有关更多信息,请参阅扩展签名

注意:由于问题 #248308,Linux ARM32 构建上的强制扩展签名验证仍然禁用。这预计将在下一个版本中解决。

当一个扩展被标识为恶意时,VS Code 现在会提供链接以获取更多信息,解释该扩展被标记的原因。这些“了解更多”链接将用户引导至包含安全问题详细信息的 GitHub 问题或文档,帮助您更好地了解潜在风险。

在 VS Code 稳定版中防止安装 Copilot Chat 预发布版本

VS Code 现在可以防止在 VS Code 稳定版中安装 Copilot Chat 扩展的预发布版本。这有助于避免您无意中安装 Copilot Chat 预发布版本并陷入损坏状态的情况。这意味着您只能在 VS Code 的 Insiders 版本中安装 Copilot Chat 扩展的预发布版本。

打开视图而不聚焦的命令

视图(树视图和 Webview 视图)现在可以在不聚焦它们的情况下打开。这对于希望打开视图但不将焦点从当前编辑器中移开的扩展和键盘快捷方式非常有用。命令是 your-view-id.open,它接受一个属性包参数:{ preserveFocus: boolean}

带有关键字建议的语义文本搜索(实验性)

设置

github.copilot.chat.search.keywordSuggestions
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

语义文本搜索现在支持由 AI 驱动的关键字建议。通过启用此功能,您将开始看到相关的引用或定义,这可能有助于您找到正在寻找的代码。

代码编辑

新的下一个编辑建议 (NES) 模型

设置

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

我们很高兴地引入了一个为 NES 提供支持的新模型,旨在提供更快、更具上下文相关性的代码建议。此更新后的模型具有改进的性能,可降低延迟地提供建议,并提供侵入性更小、与您最近的编辑更贴合的建议。此更新是我们持续致力于在 Visual Studio Code 中改进 AI 辅助开发工具的一部分。

导入建议

设置

github.copilot.nextEditSuggestions.fixes
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

下一个编辑建议 (NES) 现在可以自动建议在 JavaScript 和 TypeScript 文件中添加缺少的导入语句。通过设置 启用此功能

github.copilot.nextEditSuggestions.fixes
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
。我们计划在未来的更新中通过支持来自其他语言的导入来进一步增强此功能。

Screenshot showing NES suggesting an import statement.

默认启用下一个编辑建议 (NES)

下一个编辑建议在 VS Code Insiders 中默认开启,我们正逐步向稳定版推出。

在 HTML 或 Markdown 中生成替代文本

您现在可以在 HTML 和 Markdown 文件中生成或更新现有的替代文本 (alt text)。导航到包含嵌入式图像的任何一行,并通过 ⌘. (Windows, Linux Ctrl+.) 触发快速修复,或通过选择灯泡图标。

Screenshot that shows generating alt text for an image html element.

Notebook

查找和替换历史记录持久化

Notebook 的查找控件现在支持查找和替换输入字段的持久化历史记录。这会在重新加载后保留,并由设置 控制

editor.find.history
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
editor.find.replaceHistory
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

将单元格输出拖放到聊天中

为了增强现有对单元格输出在聊天中使用的支持,现在可以将输出拖放到“聊天”视图中,以实现无缝附加体验。目前,只支持图像和文本输出。具有图像 mime 类型的输出可以直接拖动,但为了避免与文本选择冲突,文本输出需要按住 alt 修饰键才能启用拖动。我们正在探索未来版本中的用户体验改进。

代理模式的 Notebook 工具

运行单元格

聊天现在有了一个 LLM 工具来运行 Notebook 单元格,这允许代理根据单元格运行结果执行更新或在构建 Notebook 时执行自己的数据探索。

获取内核状态

代理可以使用内核状态工具来查找当前内核会话中已执行了哪些单元格,并读取活动变量。

列出/安装包

Jupyter 扩展会为在 Notebook 内核所使用的环境中列出和安装包提供工具。如果 Python 环境扩展可用,则操作委托给它;否则,它会尝试使用 pip 包管理器。

源代码管理

暂存更改的快速差异装饰

为了响应长期以来的功能请求,在此里程碑中,我们为暂存的更改添加了快速差异编辑器装饰。现在您可以直接从编辑器中查看暂存的更改,而无需打开源代码管理视图。

您可以使用以下主题令牌自定义暂存更改快速差异装饰的颜色:editorGutter.addedSecondaryBackgroundeditorGutter.modifiedSecondaryBackgroundeditorGutter.deletedSecondaryBackground

如果你不想看到暂存更改的快速差异装饰,可以通过编辑器装订线上下文菜单中的Diff Decorations子菜单将其隐藏。

调试

反汇编视图上下文菜单

得益于社区贡献,我们现在在反汇编视图中拥有了一个上下文菜单。

Screenshot that shows the context menu in the Disassembly view.

JavaScript 调试器网络视图

最新版本的 Node.js 增强了其网络调试功能。对于支持良好的最新版本 Node.js(v22.14.0 及更高版本),实验性网络视图将默认启用。

语言

显示 CSS 和 HTML 的浏览器支持情况

当鼠标悬停在 CSS 属性、HTML 元素或 HTML 属性上时,你现在可以看到使用 Baseline 跨浏览器支持情况的摘要。

Screenshot that shows baseline browser support in the CSS hover.

.*.env 文件的默认语法高亮

名称格式为 .*.env 的文件现在被语法高亮显示为 .ini 文件。

JavaScript 和 TypeScript 的可展开悬停(实验性)

设置

typescript.experimental.expandableHover
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

我们继续迭代 JavaScript 和 TypeScript 的可展开悬停功能。此功能允许你在悬停控件中使用 +- 来显示更多或更少的类型信息。

此功能仍处于实验阶段,但你今天可以通过启用

typescript.experimental.expandableHover
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
来试用它。你必须使用 TypeScript 版本 5.9 或更高版本,例如通过安装 TypeScript nightly 扩展

远程开发

远程开发扩展允许您通过 SSH 或远程隧道使用开发容器、远程机器或适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。

Dev 容器说明文件

Dev Container 功能和镜像现在包含描述其工具和配置的说明文件。VS Code 聊天可以自动使用此上下文,从而提高其在开发过程中建议的相关性和准确性。

对扩展的贡献

Python

分支覆盖率支持

Python 的“测试资源管理器”现已支持分支覆盖率!请注意,你的 coveragepy 版本必须 >= 7.7 才能使用此功能。你可以通过运行 pip install coverage==7.7 来升级 coverage。

Python 环境快速创建命令

Python Environments 扩展已添加对快速创建的支持,使环境创建过程更加无缝。快速创建通过检测你机器上的最新 Python 版本来创建新的虚拟环境,只需一次点击即可创建虚拟环境并安装任何工作区依赖项,从而最大限度地减少你需要输入的步骤。这将为基于 venv 的环境在你的工作区中创建一个 .venv,为基于 conda 的环境创建一个 .conda。你可以通过命令面板中的 Python: Create Environment 命令访问快速创建。

Screenshot showing Quick Create in the Python: Create Environment quick pick.

Python 环境聊天工具

Python Environments 扩展(预览版)现在包含两个聊天工具:“获取 Python 环境信息”和“安装 Python 包”。要使用这些工具,你可以通过在提示中添加 #pythonGetEnvironmentInfo #pythonInstallPackage 来直接引用它们,或者代理模式将在适用时自动调用该工具。这些工具会根据文件或工作区上下文无缝检测适当的环境信息,并以准确的环境解析来处理包安装。

使用 Pylance 时的颜色选择器

Pylance 现在可以在编辑器中直接为 Python 文件中识别的颜色值显示交互式颜色样本,从而更轻松地实时可视化和选择颜色。要试用它,你可以启用

python.analysis.enableColorPicker
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
。支持的格式包括 #RGB(如“#001122”)和 #RGBA(如“#001122FF”)。

Screenshot showing the color swatch displayed in the editor next to #RGB color format.

AI 代码操作:转换格式字符串(实验性)

当使用 Pylance 时,有一个新的实验性 AI 代码操作,用于将字符串连接转换为 f 字符串或 format()。要试用它,请在选择要转换的字符串中的符号时,通过小灯泡或通过 Ctrl + ./Cmd + .,选择Convert to f-string with CopilotConvert to format() call with Copilot 代码操作。

Screenshot showing the convert strings Code Actions, powered by AI.

此体验通过以下设置启用

"python.analysis.aiCodeActions": {"convertFormatString": true}

GitHub 拉取请求和议题

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

  • 在聊天中询问有关当前拉取请求的问题,例如“处理 #activePullRequest 中的所有评论”。
  • 在 Webview 中查看问题,就像查看拉取请求一样。
  • “拉取请求”、“问题”和“通知”视图的优化和对齐。
  • 为 GitHub 的 Project Padawan 发布做准备,启用将问题分配给 Copilot、@提及 Copilot,并确保它将在 UI 中正确显示。

请查看扩展程序的 0.110.0 版本日志以了解其他亮点。

扩展开发

文本编码

我们最终确定了 VS Code 中处理文本编码的 API。

具体来说,这个新的 API 允许你

  • 获取 TextDocument 的当前 encoding
  • 使用特定的 encoding 打开 TextDocument
  • 使用特定的 encodingstring 编码为 Uint8Array
  • 使用特定的 encodingUint8Array 解码为 string

扩展程序的 ESM 支持

NodeJS 扩展主机现在支持使用 JavaScript 模块 (ESM) 的扩展。只需在扩展程序的 package.json 文件中包含 "type": "module" 条目即可。有了它,JavaScript 代码就可以使用 importexport 语句,包括特殊的模块 import('vscode')。请在此处找到一个示例:https://github.com/jrieken/vscode-esm-sample-extension

请注意,Web worker 扩展主机尚不支持 ESM。需要先克服一些技术挑战。我们将在 https://github.com/microsoft/vscode/issues/130367 上发布更新。敬请期待!

提议的 API

图像的工具调用

在上一个迭代中,我们添加了一个提议的 API,以便扩展程序可以附加图像并将视觉请求发送给语言模型。在这个迭代中,我们扩展了这个 API,以允许工具调用结果也包含图像。

请查看此 API 提议问题以查看用法示例并及时了解此 API 的状态。

由扩展程序贡献的 MCP 服务器

扩展程序现在可以通过使用新的提议的 API 以编程方式向编辑器贡献扩展程序。这是用户在设置或 mcp.json 中为每个服务器硬编码配置的一种替代方案。

如果你对这个 API 感兴趣,请查看其示例API 提议问题以随时了解此 API 的状态。

MCP 工具注释

VS Code 现在将显示配置了适当工具注释的 MCP 服务器的易读名称。此外,在注释中标记了 readOnlyHint: true 的工具将在无需用户确认的情况下运行。

可变行高

现在可以通过在 IModelDecorationOptions 类型中设置行高值,为 monaco 编辑器定义可变行高。如果一行上设置了两个行高,则使用其中较大的一个。

请注意,为了简化起见,目前行高仅设置在相应装饰范围的第一行上。在下面的屏幕录制中,第 24 行和第 32 行的行高大于默认行高。

这项工作尚未对扩展程序开放,但在经过更多测试后才会推出。

值得注意的修复

  • 244939 - 个人 Microsoft 帐户登出速度非常快(几分钟到几小时)

感谢

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

问题跟踪

对我们问题跟踪的贡献

拉取请求

vscode 的贡献

vscode-css-languageservice 的贡献

vscode-js-debug 的贡献

vscode-json-languageservice 的贡献

vscode-jupyter 的贡献

vscode-mypy 的贡献

vscode-notebook-renderers 的贡献

vscode-pull-request-github 的贡献

vscode-python-debugger 的贡献

vscode-python-environments 的贡献

language-server-protocol 的贡献

monaco-editor 的贡献

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