2025年4月(版本 1.100)
发布日期:2025年5月8日
更新:在 VS Code 稳定版中默认启用“下一编辑建议 (NES)”(更多...)。
更新 1.100.1:此更新修复了以下 安全问题。
更新 1.100.2:此更新修复了以下 问题。
更新 1.100.3:此更新修复了以下 问题。
下载:Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
欢迎阅读 2025 年 4 月版的 Visual Studio Code。此版本包含许多我们希望您会喜欢的更新,以下是部分主要亮点:
-
聊天
-
聊天性能
-
编辑器体验
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新。Insiders:想尽快尝试新功能吗?您可以下载每晚Insiders版本并尽快尝试最新更新。
聊天
提示词与说明文件
您可以通过使用基于 Markdown 的说明文件和提示词文件,根据特定的编码实践和技术栈来定制 VS Code 中的 AI 体验。我们将这两个相关概念的实现和使用进行了对齐,但它们各有不同的用途。
说明文件
设置: chat.instructionsFilesLocations
说明文件(也称为自定义说明或规则)提供了一种在 Markdown 文件中描述 AI 模型常见准则和上下文的方法,例如代码风格规则或应使用的框架。说明文件不是独立的聊天请求,而是为您可以在聊天请求中应用的上下文。
说明文件使用 .instructions.md 后缀。它们可以位于用户数据文件夹或工作区中。 chat.instructionsFilesLocations 设置列出了包含说明文件的文件夹。
您可以手动将说明附加到特定的聊天请求中,也可以自动添加它们。
-
若要手动添加,请使用聊天视图中的“添加上下文”按钮,然后选择“说明...”。或者,使用命令面板中的“聊天:附加说明...”命令。这将弹出一个选择器,让您选择现有的说明文件或创建一个新的文件进行附加。
-
若要自动将说明添加到提示词中,请在说明文件中添加
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
提示词文件描述了一个独立、完整的聊天请求,包括提示文本、聊天模式和要使用的工具。提示词文件对于为常见任务创建可重用的聊天请求非常有用。例如,您可以添加一个用于创建前端组件或执行安全审查的提示词文件。
提示词文件使用 .prompt.md 后缀。它们可以位于用户数据文件夹或工作区中。 chat.promptFilesLocations 设置列出了查找提示词文件的文件夹。
有几种方法可以运行提示词文件:
-
在聊天输入框中输入
/,后跟提示词文件名。
-
在编辑器中打开提示词文件,并点击编辑器工具栏中的“播放”按钮。这使您可以快速迭代提示词并运行它,而无需切换回聊天视图。

-
从命令面板使用“聊天:运行提示词文件...”命令。
提示词文件可以具有以下前置元数据头部,以指示它们应如何运行:
mode:调用提示词时使用的聊天模式(ask、edit或agent模式)。tools:如果模式为agent,则为提示词可用的工具列表。
以下示例显示了一个用于生成发行说明的提示词文件,它在智能代理模式下运行,并且可以使用一组工具:
---
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: '针对 TypeScript 编写的前端组件的代码风格规则。')。
更快的智能代理模式编辑
我们在智能代理模式下实现了对 OpenAI 的应用补丁编辑格式(GPT 4.1 和 o4-mini)以及 Anthropic 的替换字符串工具(Claude Sonnet 3.7 和 3.5)的支持。这意味着您将受益于显著更快的编辑速度,特别是在大文件中。
OpenAI 模型的更新在 VS Code Insiders 中默认开启,并逐渐向稳定版推出。Anthropic 更新已对所有稳定版和 Insiders 版用户开放。
聊天中的基础模型
我们正在逐步推出 GPT-4.1 作为 VS Code 聊天中的默认基础模型。您可以随时使用聊天视图中的模型切换器切换到其他模型。
使用 #githubRepo 工具搜索 GitHub 存储库的代码
假设您需要询问有关 GitHub 存储库的问题,但编辑器中没有打开它。例如,您想知道 microsoft/vscode 存储库中某个特定函数是如何实现的。
您现在可以使用 #githubRepo 工具在您有权访问的任何 GitHub 存储库中搜索代码片段。此工具接受 user/repo 作为额外输入。例如:“如何在 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.

如果您想询问当前正在处理的存储库,只需使用 #codebase 工具 即可。
此外,#githubRepo 工具仅用于搜索相关的代码片段。GitHub MCP 服务器 提供了用于处理 GitHub Issue 和 Pull Request 的工具。了解有关 在 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.openAgentworkbench.action.chat.openEditworkbench.action.chat.openAsk
智能代理模式编辑的自动修复诊断
设置: github.copilot.chat.agent.autoFix
如果智能代理模式下的文件编辑引入了新错误,代理模式现在可以检测到它们,并自动提出后续编辑建议。这意味着您不必发送后续提示词来要求代理模式修复任何错误。您可以使用 github.copilot.chat.agent.autoFix 禁用此行为。
智能代理模式下撤消和手动编辑的处理
以前,在智能代理模式会话期间进行手动编辑可能会混淆模型。现在,代理会收到关于您更改的提示,并且在编辑可能已更改的文件之前应根据需要重新读取文件。
会话摘要和提示词缓存
我们更改了构建代理模式提示词的方式,以针对提示词缓存进行优化。提示词缓存是一种通过为提示词维护稳定的前缀来加快模型响应速度的方法。下一个请求能够从该前缀恢复,结果是每个请求应该会更快一些。这在具有大上下文的重复请求系列中特别有效,正如您在代理模式中通常所做的那样。
当您的对话变长或上下文变得非常大时,您可能会在代理模式会话中看到“摘要会话历史记录”消息。

我们不是将整个对话作为 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 服务器工具输入和输出的 UI,并增加了对 MCP 新进度消息的支持。
主题:Codesong(在vscode.dev上预览)
MCP 配置生成使用输入
为了帮助保护您的机密安全,由“MCP:添加服务器”命令生成的 AI 辅助配置现在为任何机密生成 inputs,而不是将它们内联到生成的配置中。
内联聊天 V2(预览)
设置: inlineChat.enableV2
我们一直在开发改进版的内联聊天 ⌘I (Windows, Linux Ctrl+I)。其主题仍然是“将聊天带入代码”,但在幕后,它使用了与聊天编辑相同的逻辑。这意味着更好地利用可用上下文和更好的代码编辑策略。您可以通过 inlineChat.enableV2 启用内联聊天 v2。
此外,现在有一种更轻量级的用户体验可以选配启用。通过 inlineChat.hideOnRequest 设置,内联聊天会在发出请求后立即隐藏。然后它会最小化到聊天编辑覆盖层中,该覆盖层支持接受或丢弃更改,或恢复内联聊天控件。
选择并将 UI 元素附加到聊天(实验性)
设置: chat.sendElementsToChat.enabled
当您开发 Web 应用程序时,您可能想询问聊天关于网页的特定 UI 元素。您现在可以使用内置的“简单浏览器”将 UI 元素作为上下文附加到聊天中。
通过内置的简单浏览器打开任何本地托管的站点后(使用“简单浏览器:显示”命令启动它),现在会显示一个新的工具栏,您可以在其中选择“开始”来选择站点中您想要的任何元素。这将附加所选元素的截图,以及该元素的 HTML 和 CSS。
配置附加到聊天的内容:
- chat.sendElementsToChat.attachCSS :启用或禁用附加关联的 CSS
- chat.sendElementsToChat.attachImages :启用或禁用附加所选元素的截图
此实验性功能默认对所有简单浏览器启用,但可以使用 chat.sendElementsToChat.enabled 禁用。
在智能代理模式下创建并启动任务(实验性)
设置: github.copilot.chat.newWorkspaceCreation.enabled
在上一个版本中,我们引入了 github.copilot.chat.newWorkspaceCreation.enabled (实验性) 设置以启用代理模式下的工作区创建。
现在,在此创建流程结束时,系统会提示您创建并运行一个用于启动您的应用程序或项目的任务。这简化了项目启动流程,并实现了任务的轻松重用。
辅助功能
合并编辑器改进
合并编辑器现在更具可访问性。要了解可用操作,请在合并编辑器中打开辅助功能帮助对话框(⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1))。主要操作包括 合并编辑器:完成合并 (⌘Enter (Windows, Linux Ctrl+Enter)) 和 在合并编辑器输入之间切换 (⇧⌘T (Windows, Linux Ctrl+Shift+T))。当前聚焦的输入现在也会向辅助技术通报。
下一编辑建议增强
新设置 accessibility.signals.nextEditSuggestion 会在有预测建议可用时通知您。通过可访问视图查看和接受建议(⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2))。此外, accessibility.signals.diffLineAdded 和 accessibility.signals.diffLineRemoved 在导航过程中提供音频提示,使差异检查变得无障碍。
从可访问视图审查 Copilot 用户请求
在 智能代理模式 下,工具调用或终端命令有时需要用户权限才能运行。在可访问视图中审查这些操作(⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2))。
独特的无障碍声音
accessibility.signals.save.sound 现在拥有自己独特的声音,不再与 accessibility.signals.terminalCommandSucceeded.sound 共享音频。
编辑器体验
浮动窗口模式
VS Code 中的浮动窗口允许您将编辑器和某些视图从主窗口移出到较小的窗口中,用于轻量级的多窗口设置。浮动窗口有两种新模式:
- 紧凑:我们隐藏某些 UI 元素,以便为实际内容腾出更多空间。
- 置顶:窗口保持在所有其他窗口之上,直到您离开此模式。
以下是如何将浮动编辑器窗口转换为紧凑模式的示例:
默认情况下,当您在新窗口中创建聊天时,我们会使用紧凑模式。结合窗口始终置顶的选项,您可以随时保留聊天视图以进行提问!
如果您更喜欢使用这些操作的键盘快捷键,我们引入了新命令:
workbench.action.toggleWindowAlwaysOnTop:切换始终置顶模式workbench.action.enableWindowAlwaysOnTop:将浮动窗口设置为始终置顶workbench.action.disableWindowAlwaysOnTop:将浮动窗口设置为正常workbench.action.toggleCompactAuxiliaryWindow:切换紧凑模式workbench.action.enableCompactAuxiliaryWindow:启用紧凑模式workbench.action.disableCompactAuxiliaryWindow:禁用紧凑模式
注意:即使在紧凑模式下,您也可以创建复杂的编辑器布局并打开其他编辑器。
辅助侧边栏默认可见性
设置: workbench.secondarySideBar.defaultVisibility
默认情况下,当您打开新工作区或窗口时,辅助侧边栏是隐藏的。通过新设置 workbench.secondarySideBar.defaultVisibility ,您可以控制辅助侧边栏是否应在新工作区或窗口中自动打开。您可以选择:
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
语义文本搜索现在支持由 AI 驱动的关键字建议。通过启用此功能,您将开始看到可能有助于您找到正在查找的代码的相关引用或定义。
代码编辑
新的下一编辑建议 (NES) 模型
设置: github.copilot.nextEditSuggestions.enabled
我们很高兴引入一个新的模型来驱动 NES,旨在提供更快且更具上下文相关性的代码建议。这个更新的模型提供了改进的性能,以更低的延迟交付建议,并且提供的建议干扰性更小,更贴近您最近的编辑。此次更新是我们持续致力于完善 Visual Studio Code 中 AI 辅助开发工具的一部分。
导入建议
设置: github.copilot.nextEditSuggestions.fixes
下一编辑建议 (NES) 现在可以自动建议在 JavaScript 和 TypeScript 文件中添加缺失的 import 语句。通过设置 github.copilot.nextEditSuggestions.fixes 启用此功能。我们计划在未来的更新中通过支持其他语言的导入来进一步增强此功能。

默认开启下一编辑建议 (NES)
下一编辑建议现在默认在 VS Code Insiders 中开启,我们正在逐渐将其推广到稳定版。
在 HTML 或 Markdown 中生成 alt 文字
您现在可以在 HTML 和 Markdown 文件中生成或更新现有的 alt 文字。导航到包含嵌入图像的任何行,并通过 ⌘. (Windows, Linux Ctrl+.) 或选择灯泡图标触发快速修复。

Notebook
查找和替换历史记录持久化
笔记本查找控件现在支持查找和替换输入字段的持久历史记录。此历史记录在重新加载后依然存在,并由设置 editor.find.history 和 editor.find.replaceHistory 控制。
将单元格输出拖放到聊天中
为了增强现有对聊天内单元格输出使用的支持,输出现在可以被拖入聊天视图中,以获得无缝的附件体验。目前,仅支持图像和文本输出。带有图像 MIME 类型的输出可直接拖动,但是为了避免与文本选择冲突,文本输出需要按住 alt 修改键才能启用拖动。我们正在探索在接下来的版本中改进用户体验。
智能代理模式下的笔记本工具
运行单元格
聊天现在拥有一个用于运行笔记本单元格的 LLM 工具,这允许代理根据单元格运行结果执行更新,或在构建笔记本时执行自己的数据探索。
获取内核状态
代理可以使用内核状态工具找出在当前内核会话中执行了哪些单元格,并读取活动变量。
列出/安装包
Jupyter 扩展提供了用于将包列出并安装到用作笔记本内核的环境中的工具。如果可用,该操作将委托给 Python 环境扩展;否则,它尝试使用 pip 包管理器。
源代码管理
暂存更改的快速差异装饰
为了解决长期以来的功能请求,本里程碑我们为暂存更改添加了快速差异编辑器装饰。现在,您可以直接从编辑器查看您的暂存更改,而无需打开源代码管理视图。
您可以使用以下主题标记来自定义暂存更改的快速差异装饰颜色:editorGutter.addedSecondaryBackground, editorGutter.modifiedSecondaryBackground, editorGutter.deletedSecondaryBackground。
如果您不想查看暂存更改的快速差异装饰,可以使用编辑器装订线上下文菜单中提供的“差异装饰”子菜单将其隐藏。
调试
反汇编视图上下文菜单
感谢社区贡献,我们现在在反汇编视图中有了上下文菜单。

JavaScript 调试器网络视图
最近版本的 Node.js 增强了其网络调试功能。实验性网络视图 将在支持它的最近版本的 Node.js(v22.14.0 及更高版本)上默认启用。
语言
显示 CSS 和 HTML 的浏览器支持
当悬停在 CSS 属性、HTML 元素或 HTML 属性上时,您现在可以使用 Baseline 查看该属性或元素在浏览器中支持程度的摘要。

.*.env 文件的默认语法高亮
名称格式为 .*.env 的文件现在被语法高亮显示为 .ini 文件。
JavaScript 和 TypeScript 的可扩展悬停(实验性)
设置: typescript.experimental.expandableHover
我们继续对 JavaScript 和 TypeScript 的可扩展悬停功能进行迭代。此功能让您可以使用悬停控件中的 + 和 - 来显示更多或更少的类型信息。
此功能仍处于实验阶段,但您可以通过启用 typescript.experimental.expandableHover 来立即尝试。您必须使用 TypeScript 5.9 或更高版本,例如通过安装 TypeScript nightly 扩展。
远程开发
远程开发扩展允许您通过 SSH 或远程隧道使用开发容器、远程机器或适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。
开发容器说明文件
开发容器功能和镜像现在包含描述其工具和配置的说明文件。VS Code 聊天可以自动使用此上下文,提高开发过程中其建议的相关性和准确性。
对扩展的贡献
Python
分支覆盖支持
分支覆盖现在在 Python 的测试资源管理器中得到支持!请注意,此功能要求您的 coveragepy 版本必须大于等于 7.7。您可以通过运行 pip install coverage==7.7 来升级 coverage。
Python 环境快速创建命令
Python 环境 扩展添加了对“快速创建”的支持,使环境创建过程更加无缝。“快速创建”通过检测机器上最新的 Python 版本来创建虚拟环境并一键安装任何工作区依赖项,从而最大限度地减少了您所需的输入。这将在您的工作区中为基于 venv 的环境创建 .venv,为基于 conda 的环境创建 .conda。您可以通过命令面板中的“Python:创建环境”命令访问“快速创建”。

Python 环境聊天工具
Python 环境 扩展(预览版)现在包含两个聊天工具:“获取 Python 环境信息”和“安装 Python 包”。要使用这些工具,您可以直接在提示词中通过添加 #pythonGetEnvironmentInfo #pythonInstallPackage 来引用它们,或者代理模式将根据适用情况自动调用该工具。这些工具根据文件或工作区上下文无缝检测合适的环境信息,并以准确的环境解析处理包安装。
使用 Pylance 时的颜色选择器
Pylance 现在可以直接在编辑器中为 Python 文件中的已识别颜色值显示交互式颜色样本,从而更容易实时可视化和选择颜色。要尝试它,您可以启用 python.analysis.enableColorPicker 。支持的格式包括 #RGB(如 "#001122")和 #RGBA(如 "#001122FF")。

AI 代码操作:转换格式字符串(实验性)
使用 Pylance 时,有一个新的实验性 AI 代码操作,用于将字符串连接转换为 f-string 或 format()。要尝试它,请在选择您希望转换的字符串中的符号时通过灯泡,或通过 Ctrl + ./Cmd + . 选择“使用 Copilot 转换为 f-string”或“使用 Copilot 转换为 format() 调用”代码操作。

此体验通过以下设置启用:
"python.analysis.aiCodeActions": {"convertFormatString": true}
GitHub 拉取请求和议题
GitHub Pull Requests 扩展取得了更多进展,该扩展使您能够处理、创建和管理拉取请求和问题。新功能包括:
- 在聊天中询问有关活动 Pull Request 的问题,例如“处理 #activePullRequest 中的所有评论”。
- 在 Webview 中查看 Issue,就像您可以查看 Pull Request 一样。
- “Pull Request”、“Issue”和“通知”视图的润色和对齐。
- 通过启用 Issue 到 Copilot 的分配、Copilot 的 @-提及,并确保其在 UI 中正确显示,为 GitHub Project Padawan 的发布做好准备。
查看该扩展 0.110.0 版本 的更新日志,了解其他亮点。
扩展开发
文本编码
我们最终确定了在 VS Code 中处理文本编码的 API。
具体而言,此新 API 允许您:
- 获取
TextDocument的当前encoding - 使用特定
encoding打开TextDocument - 使用特定
encoding将string编码为Uint8Array - 使用特定
encoding将Uint8Array解码为string
扩展的 ESM 支持
NodeJS 扩展宿主现在支持使用 JavaScript 模块 (ESM) 的扩展。它只需要在扩展的 package.json 文件中包含 "type": "module" 条目。有了它,JavaScript 代码就可以使用 import 和 export 语句,包括特殊的模块 import('vscode')。在此处查找示例:https://github.com/jrieken/vscode-esm-sample-extension。
请注意,ESM 支持尚不适用于 Web worker 扩展宿主。首先需要克服一些技术挑战。我们将发布关于 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 的贡献者们致以衷心的感谢。
问题跟踪
对我们问题跟踪的贡献
- @albertosantini (Alberto Santini)
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
拉取请求
对 vscode 的贡献
- @ahojukka5 (Jukka Aho): 更新 chatExecuteActions.ts PR #246494
- @alexweininger (Alex Weininger): fix: 处理编辑会话标识提供程序内的取消错误 PR #247450
- @andrewbranch (Andrew Branch): 允许禁用内置 TS/JS 扩展以偏向 tsgo PR #246858
- @BABA983 (BABA): 接受所有组合的命令 PR #225132
- @batsev: Git - 在创建分支之前验证分支名称 PR #245029
- @brthom (Ben Thomas): 修复测试资源管理器中的测试项排序以使用自然文件顺序 PR #246352
- @bytemain (Jiacheng)
- fix: 更正基于文件的建议的过滤逻辑 PR #245062
- refactor(nls): 对 JSON 解析使用 then PR #247013
- @Cecil0o0 (hj): git: 使字母/文本/颜色在语义上保持一致 PR #245889
- @eps1lon (Sebastian "Sebbie" Silbermann): 去强调旧的 JSX 转换 PR #246738
- @futurist (James Yang): fix: runCommand 类型 PR #246198
- @gabritto (Gabriela Araujo Britto)
- [typescript-language-features] 重新添加可扩展悬停 PR #246899
- [typescript-language-features] 将可扩展悬停默认为 true PR #247343
- @guiserle (guiserle): config: 解析由命令返回的变量 PR #246641
- @huntertran (Tuan Tran Van): 将 git blame 悬停弹出窗口中提交描述的单换行符替换为双换行符 PR #245779
- @johnscollins98 (John Collins): #245665 修复 promptString 输入为空时任务过早退出 PR #246834
- @KapitanOczywisty: 修复 html 派生语法消耗 php 代码,修复 #237262 PR #245076
- @luantranminh (Tran Minh Luan): argv: 更新
add-mcp的描述 PR #246473 - @manabu-nakamura (nakamura)
- 关闭按钮的工具提示文本已国际化 PR #245190
- 关闭按钮的工具提示文本已国际化 (2) PR #245333
- 规范化省略号 PR #246447
- @mdanish-kh (Muhammad Danish): 更新 WinGet 配置文件位置和扩展名 PR #242241
- @mkhuzaima (Muhammad Khuzaima Umair): 拖动目录时设置 DragData PR #243656
- @mortalYoung (野迂迂): fix: 移除必要的 async 声明 PR #247213
- @nknguyenhc (Nguyen): HTML 脚本中内置符号的转到定义 PR #244074
- @noahbowman (Noah): #188711 - 演练焦点可见轮廓 PR #247650
- @pedrofrazaopacheco (Pedro Frazão Pacheco): 修复 microsoft/vscode#240654:避免在 JSON 模式 URL 中编码保留字符 PR #244934
- @pisv (Vladimir Piskarev): 合并编辑器:修复
LineRange.join(other)中的错误 PR #227585 - @RedCMD (RedCMD)
- 修复 template.expression 括号 #190564 PR #245786
- YAML 自动触发字符串中的代码补全 #239679 PR #246939
- @s-rigaud (Samuel Rigaud)
- test: 修复拼写错误 PR #247259
- fix: vscode-dts 拼写错误 PR #247263
- fix: toggleApplicationScope 拼写错误 PR #247264
- @sfaut: 修复 PHP f* 文件函数签名 PR #246964
- @thegecko (Rob Moran): 添加反汇编视图上下文菜单 PR #212500
- @theskcd: [vscode] 来自 #file 的装饰更好,并且不会在新行上中断 PR #231948
- @tjcork (tjcork): 使用参数扩展在 shellIntegration-bash.sh 中为 envVarCollections 获取环境 PR #245264
- @tmm1 (Aman Karmani): tsb: 小构建改进 PR #237450
- @Victuracor (Victuracor): 修复 extensions/typescript-language-features/package.nls.json 中的拼写错误 PR #245713
- @whistlegraph (jeffrey): 修复问题 #662(启用 Pointer Lock Web API) PR #210875
- @wolfgang42 (Wolfgang Faust): feat: markdown-basics 代码片段:引用所有行 PR #246871
- @zobo (Damjan Cvetko): 同样替换变量替换中对象内的键 PR #245989
对 vscode-css-languageservice 的贡献
- @AlterNT (NTPS): 支持
@scopePR #434 - @rviscomi (Rick Viscomi): 将 Baseline 状态添加到悬停卡片 PR #428
对 vscode-js-debug 的贡献
- @mikaelwaltersson (Mikael Waltersson): 修复 repl/watch 中“浮动”WASM 变量的扩展 + 当 WASM 内存为 SharedArrayBuffer 时的 readMemory PR #2199
对 vscode-json-languageservice 的贡献
- @fengzilong (MO): feat: 使 newJSONDocument 和 JSONDocument 一致 PR #259
对 vscode-jupyter 的贡献
- @alexfanqi (Alex Fan): 将 excludeUserSitePackages 的作用域更改为窗口 PR #16377
- @realDuang (Duang): fix: 修复环境服务中的 python 代码转义路径 PR #16518
对 vscode-mypy 的贡献
- @tdscheper (Tommy Scheper): 当 cwd 配置选项为 ${nearestConfig} 时,查找所有的 mypy.ini, .mypy.ini, pyproject.toml, setup.cfg PR #357
对 vscode-notebook-renderers 的贡献
- @marthacryan (Martha Cryan): 将 plotly.js 版本更新为 3.0.0 PR #230
对 vscode-pull-request-github 的贡献
- @kabel (Kevin Abel): 修复 git 配置失败时的合并电子邮件确认 PR #6797
- @timrogers (Tim Rogers): 当
copilot-swe-agent是评论的作者时,使用 Copilot 标识进行渲染 PR #6794
对 vscode-python-debugger 的贡献
- @rchiodo (Rich Chiodo): 允许附加配置中的 autoReload PR #676
对 vscode-python-environments 的贡献
- @InSyncWithFoo (InSync): fix: 澄清
showSkipOption也适用于卸载 PR #288
对 language-server-protocol 的贡献
- @hippietrail (Andrew Dunbar): 几个语法修复 PR #2123
- @imbant (imbant): 确保客户端请求前的文档状态同步 PR #2017
- @ocfbnj: 为 Thrift 添加 thrift-ls PR #2128
- @rtorralba (rtorralba)
对 monaco-editor 的贡献
- @RoccoC (Rocco Cataldo): 更新 webpack 插件以支持模块 worker PR #4742