2025年12月(版本1.108)
发布日期:2026年1月8日
更新 1.108.1:此更新解决了这些问题
更新 1.108.2:此更新解决了这些问题。
下载: Windows: x64 Arm64 | Mac: 通用 Intel 硅 | Linux: deb rpm tarball Arm snap
欢迎来到2025年12月发布的Visual Studio Code。

传统上,十二月是我们团队专注于清理GitHub问题和拉取请求的时间。今年,我们成功减少了近6000个未解决问题,并处理了超过1000个。
除了我们的日常维护工作,我们还在VS Code的多个领域进行了几次改进和功能更新。
祝你编码愉快!
如果您想在线阅读这些发行说明,请访问 更新 页面 code.visualstudio.com.
内部人士:想尽快尝试新功能吗?
您可以下载夜间内部人士版本,尽快体验最新更新。
下载内部人士版本
Agent
特工技能(实验性)
设置:
VS Code 现在支持代理技能,允许您向编码代理传授新能力并提供特定领域的知识。代理技能是一些包含指令、脚本和资源的文件夹,当 GitHub Copilot 相关时,可以加载以执行特殊任务。
技能存储在目录中,使用SKILL.md定义技能行为的文件。VS Code 会自动检测技能从.github/技能在你的工作区中创建一个文件夹(或.claude/技能/为了兼容性)。当与您的请求相关时,它们会按需加载到聊天上下文中。
启用支持代理技能,通过启用
了解更多关于创建和使用技能的信息,请参阅代理技能文档。
改进了代理会话视图
在这一迭代中,我们通过一些增强功能进一步改进了代理会话视图:
- 键盘访问支持用于存档、读取状态、打开会话等操作
- 根据状态和年龄对会话进行分组以并排显示
- 提供有关更改文件和相关 PR 的会话信息
- 支持从新的群组部分同时存档多个会话
- 一般无障碍改进

注意:
chat.查看会话.方向不再提供自动选项。使用并排作为替代。
聊天
聊天选择器基于代理会话
聊天会话的快速选择现在基于与代理会话视图相同的相同信息。您可以通过那里访问任何以前的聊天会话,并执行诸如归档、重命名或删除等操作。

注意:代理会话也可以通过输入
Agent在快速打开控制中 (⌘P (Windows, Linux Ctrl+P)).
聊天标题改进
聊天视图标题控制现在无论如何配置活动栏都会显示。以前,它仅在默认活动栏配置中显示。
要快速跳转到其他会话,请选择聊天标题以打开会话快速选择,并选择另一个会话。

重启时打开空聊天
设置:
从现在起,重启 VS Code 时不会自动恢复以前的聊天会话。相反,将显示一个空的聊天视图,您可以在其中从 Agent Sessions 控制中访问以前的会话。
修改此行为
终端工具自动批准默认规则
设置:
以下命令在终端自动批准启用时默认自动批准(
git 列出文件git --no-pager <安全子命令>git -C输入:rg(不包括--预和--主机名-二进制)sed(排除了一些参数和使用模式)输出字符串
此外,npm脚本通过npm,pnpm或纱线现在默认自动批准当它们被包含在内package.json我们这样做是因为使用代理已经需要工作区信任,并且我们保护代理不编辑敏感文件,例如package.json. 这可以通过 被禁用
为了提高自动批准的透明度,当规则被默认或自定义规则明确拒绝时,现在会显示一条信息:

为未来的终端工具命令添加会话和工作区规则
允许的命令或命令行条目现在在允许下拉菜单中具有选项,以允许它们在当前会话或工作区中执行相应的操作。

终端工具防止添加到 shell 历史记录
设置:
启用 shell 集成并正常工作时,通过 terminal 工具运行的命令将不再记录在 bash、zsh、pwsh 和 fish 的 shell 历史记录中。这种方法因 shell 而异,例如对于 bash。HISTCONTROL=ignorespace设置并为正在运行的命令添加了一个前导空格。
如果你希望将终端工具命令保留在 shell 历史记录中,请使用以下配置:
无障碍
在无障碍视图中流式传输聊天响应
无障碍视图现在会动态流式传输生成的聊天响应。以前,你需要关闭并重新打开无障碍视图才能看到更新的内容。现在,你可以在无障碍视图中停留,并实时监控输出,这使得实时跟踪 AI 响应变得更加容易。
MCP服务器输出从可访问视图中排除
为了减少噪音,MCP(模型上下文协议)服务器输出现在默认情况下已从可访问视图中排除。标准聊天输出仍然完全可访问,因为它以文本区域呈现,这与屏幕阅读器配合得很好。
Windows标题中的语言ID变量
一个新的${当前编辑器语言ID}变量现在可用于
"Windows标题": "${活动编辑器语言ID} - ${活动编辑器简称}"
编辑体验
通过拖放导入配置文件
您现在可以通过拖放导入设置配置文件.代码-个人资料将文件导入 VS Code。这使得与队友分享配置文件或快速设置新环境更加容易。
当你拖放文件时,配置编辑器会打开并允许你预览和导入配置。这提供了类似于拖放文件的体验。代码工作区打开工作区的文件。
复制面包屑路径
设置:
现在,您可以使用 复制面包屑路径 命令将面包屑路径复制到剪贴板。这在您需要与团队分享符号的确切位置或用于文档记录时非常有用。

该
转到工作区中的符号支持查询中的特殊字符
该在工作区中转到符号 (⌘T (Windows, Linux Ctrl+T)) 功能不再在搜索查询包含#角色。
此修复使语言扩展(如 rust-analyzer)能够使用#作为符号搜索中的修饰符。例如,在 rust-analyzer 中,附加#到查询如主要#仅在当前工作区中搜索函数。
代码编辑
新的片段转换
有两种新的片段转换可用:蛇形表示法和烤肉串. 这是您可以如何使用它们:
用于 snake_case 转换:
${TM_FILENAME/(.*)/${1:/蛇形命名法}/}
这将文件名转换为蛇形格式。例如,从我的文件名.txt它使my_file_name.txt. kebab-case 转换将是我的文件名.txt输入:.
源代码管理
Git 责任信息设置
设置:
新的
此外,
使用编辑器编写提交信息
不久前我们增加了使用完整编辑器的能力来撰写提交信息,但在编辑器标题工具栏中,发现提交或取消的操作比较困难。我们改进了编辑器右下角的编辑器覆盖控制,并将这些操作移至那里,以便更方便地使用。
源代码管理仓库视图中的工作树(实验性)
设置:
在这个里程碑中,我们已经在源代码控制仓库视图中添加了一个工作树节点。在这个节点下,您可以看到仓库工作树的列表,并且有一个内联操作可以打开一个新的Windows以查看工作树。上下文菜单中也包含一个在当前Windows中打开工作树的操作,以及一个删除工作树的操作。

您可以通过设置启用实验性仓库浏览器
了解更多关于在VS Code中使用源代码控制的信息。
终端
终端IntelliSense默认用户体验重做
在过去的两次发布中,我们向所有 VS Code 稳定版用户推出了终端 IntelliSense。虽然大部分反馈是积极的,但也有一部分用户(主要是终端高级用户)不喜欢这个功能破坏了他们的肌肉记忆。经过大量讨论,我们决定切换一些默认设置,改进可发现性,并允许更轻松地在代码中配置该功能。
该功能本身仍然默认启用,但不再在输入时自动显示(快速建议和触发字符的建议),现在需要通过Ctrl+Space明确触发。
我们还改进了底部的“状态栏”。以前,它在左侧显示插入,右侧显示“了解更多/配置”,并附有相应的快捷键。我们收到反馈,不清楚这些可以进行交互,所以我们现在在右侧显示图标,不再显示快捷键。左侧的动作现在允许旋转“选择模式”的选项,这决定了Tab和Enter在弹出时的反应方式。右侧有一个新的眼睛图标,可以启用快速建议,并再次在触发字符时建议。

最后,为了使这一强大功能在不显得过于突兀的情况下仍然相对容易发现,当打开终端时,会显示一个提示,解释如何显示建议。提示的生命周期被简化了,只需点击“不再显示”即可永久消除,就像编辑器中的类似功能一样。

除了这次用户体验重做,这些改进还应用于终端IntelliSense:
- 我们现在在macOS/Linux上显示具有可执行位的文件
- 改进的完成
npm和吉特 - 改进了文件和文件夹建议的验证
- 限制建议详情的高度以防止布局溢出
- 确保建议在终端视图移动或重新定位时继续正常工作
性能和稳定性改进
终端在此次发布中看到了几个重要的性能和稳定性改进:
- node-pty#831:在 macOS 和 Linux 上,一次粘贴超过 50 个字符或让 Copilot 运行一个大型命令不再会被限制,并且应该几乎即时应用,类似于其他终端处理 KBs/MBs 的数据。这还修复了在 macOS 上执行相同操作时可能会发生的崩溃。
- vscode#285031,vscode#285032,xterm.js#5548:修复了几个可能导致编辑器卡顿的布局问题。
- vscode#239541:修复了在终端中配置字体(如 CommitMono)时可能会发生的崩溃。
更全面的自定义字形
终端的 GPU 加速渲染器(默认开启)已经支持一段时间的盒绘、块元素和一些 powerline 符号的自定义字形。这意味着你无需配置字体就可以看到这些字符,并且它们也会随着行高、字母间距一起缩放,并且应该完美对齐。
在此次发布中,我们通过包含其他终端支持的大部分自定义字形,将支持的字符数量扩展到近 800 个。这包括在终端中通常有用的范围,特别是这些范围:
- 框图 (
输入:U+2500输入:-输入:U+257F) - 块级元素 (
输入:U+2580输入:-输入:U+259F) - 盲文图案
输入:U+2800输入:-输入:U+28FF) - 电力线符号 (
输入:U+E0A0输入:-输入:U+E0D4, 私人使用区) - 进度指示器 (
输入:U+EE00输入:-输入:U+EE0B, 私人使用区) - Git 分支符号 (
U+F5D0输入:-输入:U+F60D, 私人使用区) - 遗留计算的符号 (
输入:U+1FB00输入:-输入:U+1FBFF)
以下是所有字形的视觉展示:

改进了波浪下划线的渲染效果
VS Code 一直以来都能解析并显示带颜色和样式的下划线,但波浪线的渲染总是有些不尽人意。现在波浪线的显示应该非常接近编辑器中的样子。

您可以通过在bash中运行以下命令来亲自尝试一下: echo -e '\x1b[4:3m卷发\x1b[0m \x1b[4:3m\x1b[58;5;1m红色\x1b[0m'
尺寸调整时的视觉叠加
受到 ghostty中一个功能的启发,我们在终端调整大小时增加了一个简短的覆盖层,显示当前终端的尺寸(列 x 行)。这在您希望将终端调整到特定大小进行测试或其他目的时非常有用。

新的VT功能
终端现在支持以下 VT 功能/序列:
-
同步输出:应用程序可以使用它来在终端中暂停渲染和批处理更新,这在重写缓冲区时特别有用,可以防止撕裂。
- DECRQM (
CSI? 2026 $ p) - BSU (
CSI ? 2026 小时) - ESU (
CSI? 2026年)
- DECRQM (
-
XT版本 (
CSI > 0 q): 允许应用程序查询终端的详细信息,目前 VS Code 返回的响应是 "xterm.js" 及其版本
调试
按文件组织断点
设置:
现在可以将断点显示为树形结构,并按文件分组。通过设置启用此功能
树输入:.

测试
导航到未覆盖的区域
我们已经在测试覆盖工具栏中添加了导航按钮,使您可以轻松跳转到未覆盖代码的区域。您可以通过命令面板中的测试:显示覆盖工具栏命令切换测试覆盖工具栏。

对扩展的贡献
GitHub 拉取请求
在GitHub Pull Requests扩展上取得了更多进展,该扩展使您能够处理、创建和管理拉取请求和问题。新功能包括:
- 在拉取请求描述的网页视图中更改拉取请求的基分支。
- 将打开的拉取请求从拉取请求描述网页视图中转换为草稿。
- 为现有的PR生成拉取请求描述,而不仅仅是新的PR。
查看0.126.0版本更新日志,了解此次发布中的所有内容。
扩展编写
新的快速选择属性用于提示和资源URI
The Quick Pick API 包含两个用于创建交互式选择界面的新属性。
使用提示物业在快速选择在输入框下方显示持久性的指导文本。用户输入时,文本保持可见,这有助于提供指导或上下文信息。
常量 快速选择 = vscode.Windows.创建快速选择();
快速选择.提示 = '选择一个文件打开';
快速选择.项目 = 项目;
快速选择.显示();
使用资源uri物业在快速选择项目从资源URI自动推导项目属性。当提供时,VS Code 推导:
- 该
Tab从文件名(设置为空字符串时) - 该
描述从文件路径(当设置为未定义或空字符串) - 该
图标从当前文件图标主题中(当图标路径设置为主题图标.文件或主题图标.文件夹)
这在构建文件或文件夹选择界面时很有用。
const items: vscode.QuickPickItem[] = [
{
label: '',
resourceUri: vscode.Uri.file('/path/to/app.ts'),
iconPath: vscode.ThemeIcon.File
},
{
label: '',
resourceUri: vscode.Uri.file('/path/to/src'),
iconPath: vscode.ThemeIcon.Folder
}
];
工程
清洁工作
作为我们每年12月的日常维护的一部分,我们大部分时间都在清理我们所有维护的仓库中的GitHub问题和拉取请求。今年,我们成功地减少了5,951个未解决问题,并处理了另外1,203个问题。



通过使用改进的 triage 工具和去重流程,我们能够关闭大量过时和已解决的问题。这使我们的项目更加可管理,使我们能够向前推进并开发对用户最有影响的功能。仅在我们的核心 VS Code 代码库中,我们就关闭了 2,872 个问题,并对另外 1,697 个问题进行了 triage!

在2025年6月,我们还宣布Copilot已经开源!这意味着所有相关问题也将提交到microsoft/vscode仓库,并且我们还有microsoft/vscode-copilot-release中的积压问题需要处理。这个月,我们对仓库中的每个问题进行了 triage,并关闭了1,659个问题,只剩下175个未处理的问题需要迁移。

以下是显示我们核心 vscode 仓库多年来如何增长的图表,以及我们神奇的社区随着时间的推移贡献了多少个问题。我们感谢多年来向我们的仓库贡献问题并继续与我们互动的每个人。您的反馈使 VS Code 成为了今天的产品!🚀

在 TypeScript 中编写扩展(实验性)
现在可以使用 TypeScript 直接编写 VS Code 扩展,而不需要经过构建步骤。这可以... 但仍然有些冒险!许多方面仍未经测试,例如如何编写和运行测试、如何发布扩展以及其他工作流程考虑事项。
了解更多关于这种实验方法的信息,请参阅 这个 GitHub 评论。
重要修复
- vscode#283356 - 修复了在滚动跳过一些聊天输出时导致跳转的回归问题
谢谢
贡献于Visual Studio Code输入:
- @abhijit-chikane (阿比吉特·奇卡内):修复:悬停聚焦边框在角落处被裁剪PR #259548
- @alievilshat (Ilshat Aliyev):修正了 _shouldRenderHint 逻辑中的错误否定。PR #242479
- @Andarist (Mateusz Burzyński):简化
测试即时实例化服务#模拟超载 PR #282223 - @anki-code (Andy Kipp):添加了Xonsh shell类型 PR #284044
- @aryla (Arttu Ylä-Outinen):修复 sticky scroll 悬停监听器堆积的问题PR #260020
- @AviVahl (Avi Vahl):修复:确保回退到默认系统等宽字体PR #282747
- @BartolHrg:修复多光标和空选择的复制问题PR #256083
- @Beace (Beace):修复:修复终端 WebGL 上下文内存泄漏PR #279579
- @bibaswan-bhawal (Bibaswan Bhawal):修复(扩展):允许extensionButton promientBackground生效PR #276788
- @chaitanyamedidar (Chaitanya Medidar):修复滑动导航设置缺少描述 #281997 PR #282220
- @CyMad7001 (Cyril Madigan): #196344 - 修复安装程序卡顿问题 PR #228233
- @daiyam (Baptiste Augrain):修复:正确传递扩展的ID,当提供版本时PR #279630
- @eidriahn (Adrian Luca):修复:修复快速选择复选框悬停时图标不显示的问题PR #285250
- @erezak (Erez Korn): 聊天: 隐藏编辑器中的命令面板中的“应用”PR #283486
- @flying-sheep (Philipp A.):修复:为Git设置LANGUAGEPR #285410
- @gjsjohnmurray (约翰·默里):统一面包屑切换选项标签(修复 #257550)PR #284486
- @hickford (M Hickford):反向行:当选择为单行时应用于整个文档PR #257031
- @irengrig (Irina Chernushina):通过安装光标更改位置监听器来修复内存泄漏PR #267799
- @isksss (isksss):更新:修复了可以在 vue 文件等中使用 MARK 的问题。PR #283583
- @izolotarev (Igor):修复HSL饱和度中的颜色检测PR #266720
- @jakebailey (Jake Bailey):用命名空间替换旧式的TS模块PR #282862
- @jcpetruzza (丹尼尔·戈林):调试:修复在高线程数下“继续”时用户界面冻结的问题PR #283635
- @JeffreyCA:更新 Azure 开发人员 CLI (azd) 的图规范PR #281127
- @joeriddles (Joe Riddle):将 snakecase 添加到片段语法中 PR #237110
- @josephxiao8 (Joseph Xiao):在运行删除重复行后,预期的最终选择PR #234799
- @junhaoliao (廖俊豪):在 WordHighlighter 的 runDelayer 触发器中抑制未处理的错误。PR #285887
- @kheif (Mehmet Ege Aydın):工作台:添加命令以将编辑器移动到开始和结束PR #284999
- @kortin99 (Kortin Zhou):功能(片段):在片段 tmLanguage 语法中添加对 kebab-case 的支持PR #222319
- @maynkxx (mayank choudhary): 文档:在 README 中将 Twitter 品牌更新为 XPR #280235
- @milanchahar (米兰 查哈尔):修复终端图标选择器位置PR #281275
- @mizdra (mizdra):修复在某些环境中失败的测试
XDG 数据主目录已设置 PR #285402 - @MohamedEmirHajji (穆罕默德·埃米尔·哈吉)
- 为 completions 添加更多 git log 选项PR #282311
- Markdown 预览:从滚动同步中过滤隐藏元素(修复 #281247)PR #282506
- @murataslan1 (穆拉特·阿斯兰)
- 修复:避免在导航到下一个/上一个时出现滚动跳转问题PR #285634
- 修复:用 Event.once 替换终端标签页视图的生命周期 hackPR #285657
- 修复:用 Event.once 替换终端视图生命周期 hackPR #285661
- @NriotHrreion (Norcleeh):修复:向新聊天发送消息时最新的输入不会保存到历史记录中PR #282633
- @odinGitGmail (odinsam):修复调试:在调试控制台链接中支持 C# 堆栈跟踪格式PR #281536
- @przpl:修复(runSubagent):收集计算生成的附件PR #283750
- @rducom (Raphael DUCOM):修复 PowerShell 提示符检测中的 ReDoSPR #279853
- @RedCMD (红命令)
- 添加 TS/JS 模板包围括号PR #255972
- 修复php缩进 #248229 PR #258016
- 修复保存时的格式设置
修改If可用PR #283726 - 支持
# pragmaC 中的折叠标记 PR #284927
- @remcohaszing (Remco Haszing):修复编辑器边缘点击问题PR #262964
- @Riya-chandra (RIYA_CHANDRA):在命令面板中将命令描述显示为工具提示PR #284609
- @SalerSimo (西蒙娜·萨勒诺)
- 将终端编辑器排除在最近关闭的编辑器历史记录之外PR #282009
- 重构MoveLinesCommand中的虚拟模型创建逻辑PR #284785
- @SimonSiefke (西蒙·西夫克)
- 修复:终端编辑器中的内存泄漏PR #279088
- 修复:终端进程中的内存泄漏PR #279167
- 修复:终端进程中的内存泄漏PR #279172
- 修复:无障碍信号中的内存泄漏PR #279242
- 修复:本地进程扩展主机的内存泄漏PR #279351
- 修复:扩展图标小部件中的内存泄漏PR #280566
- 修复:markdown悬停的内存泄漏PR #280745
- 修复:调试会话中的内存泄漏PR #281767
- 修复:状态栏中的内存泄漏PR #282246
- 修复: ipc 中的内存泄漏PR #282253
- 修复:聊天列表渲染器中的内存泄漏PR #282560
- 修复:笔记本代码滚动中的内存泄漏PR #283452
- 修复:终端查找控件的内存泄漏PR #283466
- 修复: mainThread Languages中的内存泄漏PR #283498
- 修复:聊天小部件中的内存泄漏PR #284288
- 修复:终端聊天小部件的内存泄漏PR #284325
- 修复:内存泄漏调用栈小部件PR #286246
- @sudip-kumar-prasad (Sudip Kumar Prasad):修复:使用 codicon id 为 Command Prompt 默认配置文件图标 PR #280967
- @tamuratak (田村孝)
- 修复:确保在ChatWidget中调用finishedEditingPR #281763
- 包括大写字母
-我在 sed 原地选项检测中 PR #284645 - 修复聊天组件在重新编辑时的上下文处理PR #285099
- @ThanhNguyxn (Thanh Nguyen):修复:最大化并居中对齐时面板无法关闭(修复 #281772)PR #281773
- @tharani-2006:终端:在调整大小时显示尺寸叠加PR #284244
- @tt0mmy (Tommy):修复终端建议配置中的重复描述PR #279730
- @yavanosta (德米特里·古凯特列夫)
- 修复在 EditContext 关闭时向后选择的问题PR #273150
- InlineEditsView: 移除 textModel 的重新声明PR #281501
- SingleUpdatedNextEdit: 正确应用插入更改PR #281519
贡献于vscode- copilot-聊天输入:
- @AbdelrahmanAbouelenin (ababouelenin):更新VSCModelB的系统提示。PR #2727
- @bharatvansh (Ayush Singh):修复(byok):改进Gemini提供者错误处理并添加测试PR #2686
贡献于vscode-js-性能分析器可视化工具输入:
- @xiaoxiangmoe (赵金祥): chore: 移除无用的 package-lock.json 文件 PR #216
问题跟踪
对我们的问题跟踪的贡献:
- @gjsjohnmurray (约翰·默里)
- @RedCMD (红命令)
- @tamuratak (田村孝)
- @IllusionMH (安德烈·迪耶耶夫)
- @albertosantini (阿尔贝托·桑蒂尼)
我们非常感谢人们在新功能准备好后尽快尝试,所以经常查看这里并了解最新动态。
如果您想阅读以前 VS Code 版本的发行说明,请访问 更新 页面 code.visualstudio.com。