2025 年 6 月(版本 1.102)
发布日期:2025 年 7 月 9 日
更新 1.102.1:此更新解决了这些问题。
更新 1.102.2:此更新解决了这些问题。
更新 1.102.3:此更新解决了这些问题。
下载:Windows:x64 Arm64 | Mac:通用 Intel Apple 芯片 | Linux:deb rpm tarball Arm snap
欢迎使用 Visual Studio Code 2025 年 6 月版。此版本包含许多我们希望您会喜欢的更新,其中一些主要亮点包括
-
聊天
-
MCP
-
编辑器体验
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新。内部人员版本:想尽快试用新功能?您可以下载每晚的内部人员版本,并在最新更新发布后立即试用。
聊天
Copilot Chat 开源
我们很高兴地宣布,我们已将 GitHub Copilot Chat 扩展开源!源代码现已在 microsoft/vscode-copilot-chat
上以 MIT 许可证提供。
这标志着我们对透明度和社区协作承诺的一个重要里程碑。通过开源此扩展,我们使社区能够
- 直接贡献于 VS Code 中 AI 驱动的聊天体验的开发
- 理解聊天模式、自定义指令和 AI 集成的实现
- 在我们工作的基础上构建,以创建更好的 AI 开发工具
- 参与塑造 AI 辅助编码的未来
您可以探索存储库,了解 代理模式、内联聊天 和 MCP 集成 等功能是如何实现的。我们欢迎社区的贡献、反馈和协作。
要了解有关此里程碑以及我们对开源 AI 编辑器工具的更广泛愿景的更多信息,请阅读我们详细的博客文章:开源 AI 编辑器 - 第一个里程碑。
聊天模式改进
上一个里程碑,我们预览了自定义聊天模式。除了内置的聊天模式“询问”、“编辑”和“代理”之外,您还可以定义自己的聊天模式,其中包含特定的指令和一组允许的工具,您希望 LLM 在回复请求时遵循这些工具。
此里程碑,我们在此领域进行了一些改进和错误修复。
配置语言模型
根据普遍要求,您现在还可以指定用于聊天模式的语言模型。将 model
元数据属性添加到您的 chatmode.md
文件中,并提供模型标识符(我们为模型信息提供 IntelliSense)。
改进的编辑支持
聊天模式、提示和指令文件的编辑器现在支持所有受支持的元数据属性的完成、验证和悬停。
聊天视图中的齿轮菜单
聊天视图工具栏中的配置聊天操作允许您管理自定义模式以及可重用指令、提示和工具集
选择模式显示所有当前安装的自定义模式,并允许您打开、创建新模式或删除模式。
通过 vscode
链接导入模式、提示和指令
您现在可以从外部链接(例如 gist 或我们的 awesome-copilot 社区存储库)导入聊天模式、可重用提示和指令文件。例如,以下链接将导入 Burke 的 GPT 4.1 Beast Mode 的聊天模式文件
将 GPT 4.1 Beast Mode 添加到 VS Code
这将提示您选择目标(当前工作区或用户设置),并在从 URL 导入模式文件之前确认名称。
在 awesome-copilot 上尝试 100 多个社区贡献的指令、提示和聊天模式。
生成自定义指令
为您的项目设置自定义指令可以通过提供有关您的编码标准和项目约定的上下文来显著改进 AI 建议。但是,从头开始创建有效的指令可能具有挑战性。
此里程碑,我们推出了聊天:生成指令命令,以帮助您为工作区启动自定义指令。从命令面板或聊天视图中的配置菜单运行此命令,代理模式将分析您的代码库以生成反映项目结构、技术和模式的定制指令。
该命令会在您的 .github
文件夹中创建 copilot-instructions.md
文件,或建议改进现有指令文件。然后,您可以审查和自定义生成的指令,以满足您团队的特定需求。
了解有关使用指令自定义 AI 响应的更多信息。
按需加载指令文件
指令文件可用于描述编码实践和项目要求。指令可以手动或自动作为上下文包含在聊天请求中。
支持各种机制,请参阅我们文档中的自定义指令部分。
对于您希望有条件地包含的较大指令,您可以将 .instructions.md
文件与 applyTo
标头中定义的 glob 模式结合使用。当 glob 模式匹配聊天上下文中的一个或多个文件时,该文件会自动添加。
此版本中的新功能是,大型语言模型可以按需加载指令。每个请求都会获得所有指令文件列表,以及 glob 模式和描述。在此示例中,LLM 没有明确添加到上下文中的 TypeScript 文件的指令。因此,它在创建 TypeScript 文件之前查找代码样式规则
编辑以前的请求(实验性)
您现在可以点击以前的请求来修改文本内容、附加上下文、模式和模型。提交此更改后,这将删除所有后续请求,撤消任何所做的编辑,并在聊天中发送新请求。
我们将对编辑请求的不同入口点进行受控推出,这将有助于我们收集关于偏好编辑和撤消流程的反馈。但是,用户可以使用实验性 chat.editRequests 设置来设置其首选模式
- chat.editRequests.inline:将鼠标悬停在请求上并选择文本以开始对请求进行内联编辑。
- chat.editRequests.hover:将鼠标悬停在请求上以显示一个工具栏,其中包含一个按钮,用于开始对请求进行内联编辑。
- chat.editRequests.input:将鼠标悬停在请求上以显示一个工具栏,该工具栏将开始在聊天底部的输入框中进行编辑。
终端自动批准(实验性)
代理模式现在有一种机制可以自动批准终端中的命令。以下是使用默认设置的演示
目前有两个设置:允许列表和拒绝列表。允许列表是一个命令前缀或正则表达式的列表,当匹配时允许命令在没有明确批准的情况下运行。例如,以下内容将允许任何以 npm run test
开头的命令以及完全 git status
或 git log
运行
"github.copilot.chat.agent.terminal.allowList": {
"npm run test": true,
"/^git (status|log)$/": true
}
这些设置在设置范围之间合并,以便您可以拥有一组用户批准的命令以及工作区特定的批准命令。
对于链式命令,我们尝试根据 shell 检测这些情况,并要求批准所有子命令。因此,foo && bar
我们检查 foo
和 bar
是否都允许,只有在那时它才会在没有批准的情况下运行。我们还尝试检测内联命令,例如 echo $(pwd)
,这将同时检查 echo $(pwd)
和 pwd
。
拒绝列表的格式与允许列表相同,但会覆盖它并强制批准。目前,这主要用于您在允许列表中有广泛的条目并希望阻止它可能包含的某些命令的情况。例如,以下内容将允许所有以 npm run
开头的命令,除非它以 npm run danger
开头
"github.copilot.chat.agent.terminal.allowList": {
"npm run": true
},
"github.copilot.chat.agent.terminal.denyList": {
"npm run danger": true
}
由于我们从工作区信任中获得的针对提示注入的保护,我们在实现此功能时在安全性方面采取的理念是在允许列表中包含一小部分无害的命令,并在拒绝列表中包含一组特别危险的命令,以防它们设法逃脱。允许列表默认为空,因为我们仍在考虑默认值应该是什么,但这是我们正在考虑的
- 允许列表:
echo
、cd
、ls
、cat
、pwd
、Write-Host
、Set-Location
、Get-ChildItem
、Get-Content
、Get-Location
- 拒绝列表:
rm
、rmdir
、del
、kill
、curl
、wget
、eval
、chmod
、chown
、Remove-Item
我们希望为此功能添加的两个主要部分是一个 UI 入口点,以便更轻松地将新命令添加到列表中(#253268)以及一个可选选项,允许 LLM 评估命令的安全性(#253267)。我们还计划在下一个版本中删除这些设置的 github.copilot.
前缀(#253314)并将其合并(#253472),然后再将其设为预览设置。
终端命令简化
代理模式有时希望运行带有 cd
语句的命令,以防万一。我们现在在它匹配当前工作目录时检测到这种情况并简化运行的命令。
代理对任务和终端的感知
代理模式现在可以识别它创建的后台终端以及正在主动运行的任务。代理可以使用新的 GetTaskOutput
工具读取任务输出,这有助于防止运行重复任务并改进工作区上下文。
最大化聊天视图
您现在可以将辅助侧边栏最大化以跨越编辑器区域并隐藏主侧边栏和面板区域。VS Code 会记住此状态并在重新启动之间恢复,并在您打开编辑器或视图时恢复聊天视图。
您可以使用关闭按钮旁边的新图标切换最大化状态,或使用命令面板中的新命令 workbench.action.toggleMaximizedAuxiliaryBar
。
代理模式徽章指示器
当窗口未聚焦且代理需要用户确认才能继续时,我们现在在 Dock 中的应用程序图标上显示一个徽章。徽章将在触发它的相关窗口获得焦点后立即消失。
您可以通过 chat.notifyWindowOnConfirmation 设置启用或禁用此徽章。
从命令行启动聊天
VS Code CLI 中添加了一个新的子命令 chat
,它使您能够在当前工作目录中启动带有提供的提示的聊天会话。
基本语法是 code chat [options] [prompt]
,选项可以是以下任何一项
-m --mode
:用于聊天会话的模式。可用选项:“ask”、“edit”、“agent”或自定义模式的标识符。默认为“agent”-a --add-file
:将文件添加为聊天会话的上下文--maximize
:最大化聊天会话视图-r --reuse-window
:强制将上次活动的窗口用于聊天会话-n --new-window
:强制打开一个空窗口用于聊天会话
支持从 stdin 读取,前提是您在末尾传入 -
,例如 ps aux | grep code | code chat
Fetch 工具支持非 HTTP URL
我们发现,模型有时希望使用非 HTTP URL 调用 Fetch 工具,例如 file://
URL。Fetch 工具现在支持这些 URL 并返回文件或资源在 URL 处的内容,而不是禁止这样做。图像也支持。
更清晰的语言模型访问管理
我们重做了管理扩展对扩展提供的语言模型访问的 UX。以前,您在帐户菜单中看到一个项目,显示帐户名称 (GitHub Copilot Chat),这与 GitHub Copilot Chat 使用哪个帐户无关。相反,它允许您管理哪些扩展可以访问 Copilot Chat 提供的语言模型。
为了使这更清晰,我们删除了帐户名称 (GitHub Copilot Chat) 项目,并将其替换为一个名为管理语言模型访问...的新项目。此项目打开一个快速选择器,使您能够管理哪些扩展可以访问 GitHub Copilot Chat 提供的语言模型。
我们认为这更清晰... 也就是说,在未来的版本中,我们将探索对语言模型进行更细粒度的访问控制(例如,只允许特定模型,而不是扩展提供的所有模型),所以请继续关注。
读取聊天请求
由于聊天扩展本身是开源的,您现在可以访问我们内部使用了一段时间的调试工具之一。要轻松查看 Copilot Chat 发出的所有请求的详细信息,请运行命令“显示聊天调试视图”。这将显示一个树形视图,其中包含每个请求的条目。您可以查看发送到模型的完整提示、启用的工具、响应以及其他关键详细信息。您可以右键单击 >“导出为...”来保存请求日志。
该视图还包含工具调用本身的条目,以及在简易浏览器中打开的 prompt-tsx 调试视图。
🚨 注意:此日志在排查问题时非常有用,如果您在提交有关代理行为的问题时分享它,我们将不胜感激。但是,此日志可能包含个人信息,例如文件内容或终端输出。请在与他人分享之前仔细查看内容。
编辑工具改进
此版本包括对用于 GPT-4 模型和 Sonnet 模型的编辑工具的可预测性和可靠性的多项更改。您应该在此版本中看到更可靠的编辑行为,我们将在未来版本中继续改进这些工具。
MCP
VS Code 中的 MCP 支持正式可用
在过去几个月里,我们一直在努力扩展 VS Code 中的 MCP 支持,并支持规范中的所有 MCP 功能。从本版本开始,VS Code 中的 MCP 支持现在正式可用!
此外,组织现在可以通过 GitHub Copilot 策略控制 MCP 服务器的可用性。在 GitHub Copilot 文档中了解有关管理企业中 Copilot 的策略和功能的更多信息。
您可以从我们的精选列表中安装一些热门 MCP 服务器来开始。了解有关在 VS Code 中使用 MCP 服务器以及如何使用它们来扩展代理模式的更多信息。
如果您想构建自己的 MCP 服务器,请查看我们的MCP 开发人员指南,了解有关如何在 VS Code 中利用 MCP 功能的更多详细信息。
支持 Elicitations
最新的 MCP 规范添加了对 Elicitations 的支持,作为 MCP 服务器请求 MCP 客户端输入的一种方式。最新版本的 VS Code 采用了此规范并包含对 Elicitations 的支持。
MCP 服务器发现和安装
扩展视图中新的MCP 服务器部分包含欢迎内容,直接链接到我们精选列表中的热门 MCP 服务器。访问网站探索可用的 MCP 服务器,并在任何 MCP 服务器上选择安装。这会自动启动 VS Code 并打开 MCP 服务器编辑器,该编辑器显示服务器的自述文件和清单信息。您可以查看服务器详细信息并选择安装以将服务器添加到您的 VS Code 实例。
安装后,MCP 服务器会自动出现在扩展视图的已安装的 MCP 服务器部分下,并且它们的工具在聊天视图的工具快速选择器中可用。这使得验证您的 MCP 服务器是否正常工作并立即访问其功能变得容易。
MCP 服务器管理视图
扩展视图中新的MCP 服务器 - 已安装视图可以轻松监控、配置和控制您已安装的 MCP 服务器。
该视图列出已安装的 MCP 服务器并通过上下文菜单提供多个管理操作
- 启动服务器 / 停止服务器 / 重启服务器:控制服务器的运行状态
- 断开帐户:从服务器中删除帐户访问权限
- 显示输出:查看服务器的输出日志以进行故障排除
- 显示配置:打开服务器的运行时配置
- 配置模型访问:管理服务器可以访问哪些语言模型
- 显示采样请求:查看采样请求以进行调试
- 浏览资源:探索服务器提供的资源
- 卸载:从您的 VS Code 实例中删除服务器
当您选择已安装的 MCP 服务器时,VS Code 会打开 MCP 服务器编辑器,显示服务器的自述文件详细信息、清单及其运行时配置。这提供了服务器功能和当前设置的概述,使您可以轻松了解服务器的功能和配置方式。
MCP 服务器 - 已安装视图还提供了一个浏览 MCP 服务器...操作,可直接带您到社区网站,使服务器发现始终可以在 VS Code 内部访问。
MCP 服务器作为一流资源
MCP 服务器现在在 VS Code 中被视为一流资源,类似于用户任务和其他特定于配置文件的配置。这代表了与以前将 MCP 服务器存储在用户设置中的方法相比,一个显著的架构改进。此更改使 MCP 服务器管理更加健壮,并更好地分离了您的通用 VS Code 设置和 MCP 服务器配置之间的关注点。当您安装或配置 MCP 服务器时,它们会自动存储在适当的配置文件特定位置,以确保您的主设置文件保持干净和集中。
- 专用存储:MCP 服务器现在存储在每个配置文件中的专用
mcp.json
文件中,而不是混淆您的用户设置文件 - 特定于配置文件:每个 VS Code 配置文件都维护自己的一组 MCP 服务器,使您能够为不同的工作流或项目拥有不同的服务器配置
- 设置同步集成:MCP 服务器通过设置同步在您的设备之间无缝同步,并对同步内容进行精细控制
MCP 迁移支持
由于 MCP 服务器现在是一流资源,并且其配置发生了相关更改,VS Code 为从以前的 MCP 服务器配置格式升级的用户提供了全面的迁移支持
- 自动检测:
settings.json
中现有的 MCP 服务器会自动检测并迁移到新的特定于配置文件的mcp.json
格式 - 实时迁移:当您将 MCP 服务器添加到用户设置时,VS Code 会立即将其迁移,并附带一条有用的通知,解释更改
- 跨平台支持:迁移在所有开发场景中无缝工作,包括本地、远程、WSL 和 Codespaces 环境
此迁移确保您现有的 MCP 服务器配置在无需任何手动干预的情况下继续工作,同时提供新架构的增强管理功能。
Dev Container 对 MCP 配置的支持
Dev Container 配置 devcontainer.json
和 Dev Container 功能配置 devcontainer-feature.json
支持路径 customizations.vscode.mcp
处的 MCP 服务器配置。创建 Dev Container 时,收集的 MCP 服务器配置将写入远程 MCP 配置文件 mcp.json
。
示例 devcontainer.json
配置 Playwright MCP 服务器
{
"image": "mcr.microsoft.com/devcontainers/typescript-node:latest",
"customizations": {
"vscode": {
"mcp": {
"servers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
}
}
}
访问 MCP 资源的命令
为了使 MCP 服务器更易于使用,我们添加了命令来帮助您管理和访问您的 MCP 配置文件
- MCP:打开用户配置 - 直接访问您的用户级
mcp.json
文件 - MCP:打开远程用户配置 - 直接访问您的远程用户级
mcp.json
文件
这些命令提供对您的 MCP 配置文件的快速访问,使您可以轻松直接查看和管理服务器配置。
MCP 身份验证的快速管理
您现在可以从 MCP 齿轮菜单和快速选择器中注销或断开帐户。
-
MCP 视图齿轮菜单:
-
MCP 编辑器齿轮菜单:
-
MCP 快速选择器:
当帐户被其他 MCP 服务器或扩展使用时,显示断开连接操作,而当帐户仅被 MCP 服务器使用时,显示注销。注销操作会从 VS Code 中完全删除帐户,而断开连接只删除 MCP 服务器对帐户的访问权限。
辅助功能
保留编辑器内的所有编辑
以前,要接受所有编辑,焦点需要停留在聊天视图中。现在,当焦点在编辑器中时,您可以运行命令保留所有编辑(⌥⌘Y (Windows, Linux Ctrl+Alt+Y))。
需要用户操作的声音
我们已经微调了辅助功能信号,以指示何时聊天需要用户操作,并将默认值设置为auto
,以便屏幕阅读器用户将听到此信号。您可以通过accessibility.signals.chatUserActionRequired设置配置此行为。
聊天中出现渲染错误时发出警报
以前,当聊天渲染错误发生时,屏幕阅读器用户不会收到警报。现在用户会收到此信息的警报,并且可以通过键盘聚焦它。
代码编辑
中键点击滚动
只需点击或按住鼠标中键(滚轮)并四处移动即可滚动编辑器。
激活后,光标会变为平移图标,然后上下移动鼠标即可沿该方向平滑滚动编辑器。滚动速度由您将鼠标从初始点击点移动的距离决定。松开鼠标中键或再次点击即可停止滚动并返回标准光标。
已知冲突
启用此功能可能会干扰与鼠标中键绑定的其他操作。例如,如果启用了列选择(editor.columnSelection),按住鼠标中键会选择文本。同样,在 Linux 上,选择剪贴板(editor.selectionClipboard)会在点击鼠标中键时粘贴剪贴板中的内容。
为避免这些冲突,请一次只启用其中一个设置。
暂停代码补全
您现在可以使用新的暂停功能暂时暂停内联建议和下一个编辑建议 (NES)。当您想要专心而不受建议干扰时,此功能非常有用。
要暂停建议,请选择状态栏中的 Copilot 仪表板,或从命令面板运行暂停内联建议命令,然后从下拉菜单中选择一个持续时间。在暂停期间,不会出现内联建议或 NES。
您还可以为特定持续时间的快速暂停建议分配自定义键绑定,方法是将所需的持续时间作为参数传递给命令。例如
{
"key": "...",
"command": "editor.action.inlineSuggest.snooze",
"args": 10
}
编辑器体验
Windows 强调色
VS Code 在 Windows 上现在支持使用强调色作为窗口框架边框(如果 Windows 设置中启用了“在标题栏和窗口边框上显示强调色”)。
新的window.border设置使您能够控制窗口边框的颜色。使用default
使用 Windows 强调色,off
禁用边框,或提供特定的颜色值以使用自定义颜色。
注意:边框仅在相关的 Windows 设置启用时可见。目前尚不能按工作区设置,但我们正在努力支持此功能。
设置搜索建议(预览)
设置:workbench.settings.showAISearchToggle
此里程碑,我们修改了设置编辑器中的闪光切换按钮,使其充当 AI 和非 AI 搜索结果之间的切换。AI 设置搜索结果是语义相似的结果,而不是基于字符串匹配的结果。例如,当您搜索“增加文本大小”时,editor.fontSize
会显示为 AI 设置搜索结果。
仅当有 AI 结果可用时才启用切换。我们欢迎关于 AI 设置搜索未能找到预期设置的反馈,并且我们计划在下一次迭代中默认启用该设置。
任务
重新运行所有正在运行的任务
您现在可以使用新的任务:重新运行所有正在运行的任务
命令快速重新运行所有当前正在运行的任务。这对于涉及多个并发任务的工作流很有用,允许您一次重新启动所有任务,而无需单独停止和重新运行每个任务。
重新启动任务会重新加载更新的 tasks.json
“重启任务”命令现在会在重启之前重新加载您的tasks.json
,确保任何最近的更改都得到尊重。以前,重启任务时不会获取任务配置更改,这可能会导致混淆或任务行为过时。
终端
终端建议(预览版)
我们对终端建议功能进行了重大改进。
选择模式
一个新设置terminal.integrated.suggest.selectionMode
可帮助您了解默认情况下Tab(而不是Enter)接受建议。您可以选择partial
、always
和never
模式来控制建议的选择和接受方式。
默认值为 partial
,这意味着 Tab 键在导航发生之前接受建议。
了解更多
终端建议控件状态栏中的了解更多操作(kb(workbench.action.terminal.suggestLearnMore))
现在会在前 10 次或控件显示 10 秒钟时突出显示。这有助于您了解如何配置、禁用和阅读有关建议控件的信息。
多命令支持
终端建议现在支持多命令行。您可以使用;
、&&
和其他 shell 运算符链接命令,并接收行上所有命令的建议。
符号链接信息
我们现在在建议详细信息控件中显示符号链接的realpath,并为符号链接文件和文件夹提供独特的图标,以帮助将它们与其他建议区分开来。
改进的排序
我们通过多种方式改进了排序,以便首先为您提供最相关的建议。例如,将 main
和 master
的优先级高于其他分支。
Git bash 改进
我们现在正确支持 Git Bash 文件夹和文件路径补全。此外,我们还会获取内置命令并将其作为建议呈现。
对扩展的贡献
GitHub 拉取请求
GitHub 拉取请求扩展有了更多进展,该扩展使您能够处理、创建和管理拉取请求和问题。
GitHub 拉取请求扩展和 Copilot 编码代理之间实现了更深层次的集成,允许您直接从 VS Code 启动、查看和管理编码代理会话。
这些功能要求您的工作区已打开到已启用 Copilot 编码代理的存储库。
查看扩展的0.114.0 版本更新日志,了解该版本中的所有内容。
启动编码代理会话(预览版)
通过在聊天中调用 #copilotCodingAgent
工具,要求 Copilot 在后台继续进行本地更改。
此工具会自动将挂起的更改推送到远程分支,并从该分支启动编码代理会话以及用户的指令。
实验性:可以通过githubPullRequests.codingAgent.uiIntegration设置启用更深层次的 UI 集成。启用后,一个名为委托给编码代理的新按钮将出现在聊天视图中,适用于已启用代理的存储库。
状态跟踪
我们改进了通知功能,并在我代表 Copilot查询中显着显示编码代理拉取请求的状态。现在,数字徽章表示新的更改。
会话日志
您现在可以直接在 VS Code 中查看编码代理会话的会话日志。这使您能够查看编码代理所采取的操作历史记录,包括代码更改和工具使用情况。
#activePullRequest
工具增强功能
#activePullRequest
工具返回有关拉取请求的信息,例如其标题、描述和状态以用于聊天,现在您还可以使用它获取编码代理会话信息。
当通过编码代理体验打开拉取请求时,此工具会自动附加到聊天中,因此您可以保持上下文并在需要时继续处理拉取请求。
Python
Python 环境扩展改进
Python 环境扩展在此版本中获得了多项改进
- 我们改进了对 Poetry 2.0.0 以上版本的终端激活支持
- 您现在可以使用“快速创建环境”选项来设置多个虚拟环境,这些环境在同一工作区中具有唯一的名称
- 生成的
.venv
文件夹现在默认被 git 忽略 - 我们改进了环境删除过程
Python 环境作为 Python 扩展的一部分包含
我们正在开始将 Python 环境扩展作为 Python 扩展的可选依赖项推出。这意味着您现在可能会看到 Python 环境扩展与 Python 扩展一起自动安装,类似于 Python 调试器和 Pylance 扩展。这种受控推出使我们能够收集早期反馈并在普遍可用之前确保可靠性。
Python 环境扩展包括我们迄今为止引入的所有核心功能,包括:使用快速创建一键式环境设置、自动终端激活(通过“python-envs.terminal.autoActivationType”设置)以及所有支持的环境和包管理 UI。
要在推出期间使用 Python 环境扩展,请确保已安装该扩展,并将以下内容添加到您的 VS Code settings.json 文件中
"python.useEnvironmentsExtension": true
Python 3.13 禁用 PyREPL
我们已禁用 Python 3.13 及更高版本的 PyREPL,以解决交互式终端中的缩进和光标问题。有关更多详细信息,请参阅禁用 PyREPL for >= 3.13。
Pylance MCP 工具(实验性)
Pylance 扩展现在包含几个实验性 MCP 工具,它们提供对 Pylance 的文档、导入分析、环境管理等的访问。这些工具目前在 Pylance 预发布版本中可用,并且仍处于早期开发阶段。虽然它们提供了新功能,但我们知道今天直接调用它们可能具有挑战性。我们正在积极努力使这些工具更易于使用并在未来的更新中更有价值。我们欢迎您在pylance-release存储库中提供反馈,因为我们将继续改进体验。
GitHub 身份验证
重新设计的 GitHub 登录流程
此迭代中,我们重新设计了 GitHub 登录流程,默认使用环回 URL 流程,而不是使用 vscode://
协议 URL 的流程。此更改旨在提高登录流程的可靠性,并确保它适用于所有平台,包括不支持自定义 URL 方案的平台。
当您使用 GitHub 登录时,您现在会被重定向到一个看起来像 https://:PORT/
的环回 URL。这允许登录流程成功完成,而无需依赖自定义 URL 方案。也就是说,一旦您登录到环回 URL,您仍然会被重定向到 vscode://
URL 以返回到 VS Code,但是这不需要解析才能成功完成登录流程。
换句话说,我们两全其美:一个在所有平台上都可靠的登录流程,以及一个使用 vscode://
URL 方案返回到 VS Code 的方式。
与此同时,我们还为这个登录页面进行了美化。在未来的迭代中,我们将把这种新设计应用于其他登录体验。
扩展开发
允许在使用 vscode.openFolder
命令时打开文件
调用 vscode.openFolder
命令的扩展现在可以将 filesToOpen?: UriComponents[]
作为选项传递,以选择要在打开的工作区窗口中打开的文件。
示例
vscode.commands.executeCommand('vscode.openFolder', <folder uri>, { filesToOpen: [ /* files to open */]});
提议的 API
工程
使用 esbuild
进行 CSS 压缩
VS Code 长期以来一直使用 esbuild
来捆绑和压缩 JavaScript 源文件。我们现在也使用 esbuild
来捆绑和压缩我们的 CSS 文件。
使用 tsconfig.json
进行严格层级检查
我们现在使用多个 tsconfig.json
文件来确保我们的源代码遵守我们的目标环境规则。我们的 CI 运行 npm run valid-layers-check
,如果例如在 browser
层中添加了只存在于 node
运行时中的类型,则会使构建失败。
vscode-bisect
用于健全性测试
vscode-bisect
项目已经存在很长时间,允许查找 VS Code 构建中的回归(git bisect
对 git
所做的事情)。我们添加了一个新的 --sanity
选项,允许我们快速完成我们的健全性检查,这是我们发布新版本之前强制执行的。
值得注意的修复
- vscode-copilot-release#6073 - 代理不应在 Windows PowerShell 中建议
&&
感谢
最后但同样重要的是,向 VS Code 的贡献者们致以衷心的感谢。
问题跟踪
对我们问题跟踪的贡献
- @albertosantini (Alberto Santini)
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
- @tamuratak (Takashi Tamura)
拉取请求
对 vscode
的贡献
- @a-stewart (Anthony Stewart):修复 asyncDataTree.test.ts 中的类型错误 PR #209394
- @charles7668 (charles):修复 #215925 PR #219321
- @chengluyu (Luyu Cheng):将
font-variation-settings
应用于建议小部件(修复 #199954) PR #200000 - @DrSergei:改进调试适配器功能检查 PR #250779
- @emmanuel-ferdman (Emmanuel Ferdman):修复 launch.json 引用 PR #250187
- @Enzo-Nunes (Enzo Nunes):修复 makefile 的行注释操作(修复 #234464) PR #243283
- @Gallaecio (Adrián Chaves):修复拼写错误(an language model call → a language model call) PR #252202
- @ghLcd9dG (Liu):更新 copyFiles.ts PR #250773
- @heoh (HeoHeo):修复 markdown 预览滚动在 EOF 处爬行(修复 #249278) PR #251228
- @hyrious (hyrious):修复:远程内置扩展缺失翻译 PR #249430
- @jeanp413 (Jean Pierre)
- 不在内置扩展中检查 navigator 以检测 Web 环境 PR #251688
- 修复重命名自定义编辑器时出现“断言失败:参数未定义或为空”的问题 PR #252071
- @JJJJJJ-git:修复 ChatService 撤消错误 PR #253478
- @liuxingbaoyu:修复:PowerShell 不适用于包含 Unicode 的用户名 PR #251534
- @matthew-godin:修复 patternIndices 拼写错误 PR #250085
- @mohiuddin-khan-shiam (S. M. Mohiuddin Khan Shiam):修复 version_manager.rs 中不正确的 SHA-1 提交正则表达式 PR #251329
- @notoriousmango (Seong Min Park)
- 功能:为 webview 主题添加字体连字 PR #250998
- 功能:为上次运行失败的测试添加重新运行和调试操作 PR #251679
- @raffaeu (Raffaele Garofalo):重构编辑器粘性滚动 PR #248131
- @RedCMD (RedCMD)
- 调试扩展时禁用
安装文件夹
横幅警告PR #244305 - TypeScript 限制注释体内的 Comment onEnterRules PR #251692
- 调试扩展时禁用
- @ssigwart (Stephen Sigwart):更新 PHP、JS 和 TS 的缩进 PR #251465
- @Sublimeful (Jian Qiang Wu):实现在没有终端时运行终端:运行最近命令 PR #250799
- @tmm1 (Aman Karmani):[工程] 移除对 Swc 转译的无效引用 PR #252375
- @UziTech (Tony Brix):功能:添加鼠标中键滚动 PR #245882
- @yiliang114 (易良):修复 #250737,笔记本 findWidget 中匹配计数结果溢出 PR #250738
对 vscode-copilot-chat
的贡献
- @caohy1988 (Hai-Yuan Cao):更新代理模式的摘要提示 PR #13
- @CharlesCNorton:更新 README.md PR #54
- @gmacario (Gianpaolo Macario):docs(CONTRIBUTING):同步目录 PR #79
- @moonboxing (ASSEMAR MOHAMED):删除 pylint 后更新 devcontainer-lock PR #76
对 vscode-json-languageservice
的贡献
- @aedenmurray (Aeden Murray):功能:通知无效的正则表达式模式 PR #261
对 vscode-pull-request-github
的贡献
- @dyhagho (Dyhagho Briceño):修复:当
github-enterprise.uri
设置时允许 Github.com 认证PR #7002
对 vscode-ripgrep
的贡献
- @benz0li (Olivier Benz):添加 linux riscv64 目标 PR #73
- @Vector341:修复无效下载崩溃安装 PR #66
对 vscode-test
的贡献
- @coliff (Christian Oliff):更新 .npmignore PR #312
对 language-server-protocol
的贡献
- @billybonks (Sebastien Stettler):修复:提高注释的可读性,PR #2155
- @rcjsuen (Remy Suen):将 Docker 语言服务器添加到列表 PR #2153
- @yangdanny97 (Danny Yang):将 Pyrefly 添加到语言服务器列表 PR #2160
对 monaco-editor
的贡献
- @Ho1yShif (Shifra Williams):添加 snowflake sql 关键字 PR #4915
对 ripgrep-prebuilt
的贡献