2025 年 1 月(版本 1.97)
更新 1.97.1:此更新修复了以下 安全问题。
更新 1.97.2:此更新修复了以下 问题。
下载:Windows:x64 Arm64 | Mac:通用版 Intel Apple Silicon | Linux:deb rpm tarball Arm snap
欢迎使用 Visual Studio Code 2025 年 1 月版。此版本包含许多我们希望您会喜欢的更新,部分主要亮点包括:
- 下一编辑建议 (预览版) - Copilot 可预测您接下来可能进行的编辑。
- 重定位命令面板 - 可将命令面板和快速输入框拖动到新位置。
- 自动接受编辑 - 在经过可配置的超时后,自动接受来自 Copilot 的编辑建议。
- 扩展发布者信任 - 通过扩展发布者信任机制保护您的开发环境安全。
- 复合日志 - 将多个日志合并为一个聚合的日志视图。
- 筛选输出日志 - 筛选“输出”面板的内容。
- Git 责备 (blame) 信息 - 提供丰富的 Git 责备信息并支持在 GitHub 上打开。
- 调试变量搜索值 - 在调试变量中筛选和搜索特定值。
- Notebook 内联值 - 在 Notebook 中查看代码单元格变量的内联值。
- Python 免配置调试 - 无需设置即可快速调试 Python 脚本或模块。
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新。Insiders:想尽快尝试新功能吗?您可以下载每晚Insiders版本并尽快尝试最新更新。
GitHub Copilot
Copilot 下一编辑建议 (预览版)
设置: github.copilot.nextEditSuggestions.enabled
GitHub Copilot 代码补全在自动完成方面表现出色,但鉴于大多数编码活动都是在编辑现有代码,补全功能自然演进到协助编辑也是必然的。因此,我们很高兴发布一项新的预览功能:Copilot 下一编辑建议 (Copilot NES)。
根据您正在进行的编辑,Copilot NES 不仅能预测您想进行的下一次编辑的位置,还能预测该编辑的内容。NES 会建议与您当前工作相关的未来更改,您只需按 Tab 键即可快速导航并接受建议。
请注意在以下示例中,更改变量会触发文件下方更远处的编辑建议。只需使用 Tab 键进行导航并接受建议。页边距指示器将引导您找到下一个编辑建议。

通过以下 VS Code 设置启用 Copilot NES: github.copilot.nextEditSuggestions.enabled 。
根据编辑的大小和类型,建议的渲染方式可能会动态地从并排变为当前行下方。您可以配置 editor.inlineSuggest.edits.renderSideBySide 设置,以始终在当前行下方渲染建议。
Copilot NES 正在快速演进,我们迫不及待地想通过我们的仓库获取您的反馈。您可以阅读我们完整的 Copilot NES 文档,了解更多信息和场景,我们会不断扩展 NES 体验。
注意:如果您是 Copilot Business 或 Enterprise 用户,您的组织管理员除了要求您在编辑器中设置 github.copilot.nextEditSuggestions.enabled 外,还必须选择加入 Copilot “编辑器预览功能”。
Copilot 编辑
Copilot Edits 正式发布
在 VS Code 10 月版中,我们宣布了 Copilot Edits 的预览版。今天,我们正式宣布 Copilot Edits 正式可用!Copilot Edits 针对代码编辑进行了优化,使您能够直接在聊天中对工作区中的多个文件进行代码更改。
改进的编辑器控件
现在可以单独接受或放弃编辑,从而为您提供更多控制权。此外,当切换到并排视图时,编辑控件会保持可见。这对于理解较大的更改非常有用。
主题:GitHub Light Colorblind (Beta) (在 vscode.dev 上预览)
最后,我们添加了一个新设置,用于在可配置的超时后自动接受编辑建议。该设置为 chat.editing.autoAcceptDelay ,它指定了多少秒后自动接受更改。当您与接受按钮交互或开始查看更改时,倒计时会停止。这对于周末沉迷于刷剧的人来说应该很熟悉。
主题:GitHub Light Colorblind (Beta) (在 vscode.dev 上预览)
在编辑器中应用
在 Copilot Chat 中,可以通过使用代码块工具栏中的应用到编辑器 (Apply to Editor) 操作将任何代码块应用到工作区中的文件。我们对这一体验进行了多项改进:
-
操作悬停提示现在显示代码块生成的目标文件。

-
如果代码块对应的是不存在的文件,系统会提示您在哪里创建该文件。这可以是 Copilot 建议的文件路径、未命名编辑器或当前活动的编辑器。
-
当更改被计算并应用后,会使用与 Copilot Edits 相同的流程和 UI。您可以单独审查、改进或放弃每项更改。
时间上下文
时间上下文通过向语言模型通知您最近交互过的文件,从而在编辑或生成代码时提供帮助。我们正在试验并衡量其有效性,但也可以手动启用它: github.copilot.chat.editor.temporalContext.enabled (用于内联聊天) 以及 github.copilot.chat.edits.temporalContext.enabled (用于 Copilot Edits)。
工作区索引状态 UI
当您使用 @workspace 或 #codebase 向 Copilot 询问有关项目中代码的问题时,我们会使用索引来快速准确地搜索您的代码库,以便包含相关代码片段作为上下文。此索引可以是 GitHub 管理的远程索引、本地存储的索引,或者用作大型项目无法使用远程索引时的后备方案的 基本索引。
在此迭代中,我们将新的工作区索引添加到状态栏中的语言状态指示器中,该指示器显示 Copilot 正在使用的索引类型以及相关信息(例如正在重新索引的文件数量)。要查看此内容,只需在 VS Code 状态栏中选择 {} 图标即可。

查看 Copilot 工作区文档,了解有关工作区索引类型以及如何切换它们的信息。
构建远程工作区索引
远程工作区索引由 GitHub 管理。即使对于大型项目,远程索引也能快速提供高质量的结果。而且它们每个 GitHub 项目只需构建一次,而不是每个用户构建一次。
鉴于这些优势,我们增加了几种升级项目到远程索引的新方法:
-
运行新的 GitHub Copilot: Build Remote Index 命令。
-
在 工作区索引状态 UI 中选择“构建索引”按钮。仅当您的项目符合远程索引条件时,才会显示此选项。
-
在您看到的第一个
@workspace响应中选择“构建索引”按钮。此选项仅在您的项目符合条件时显示,且每个工作区仅显示一次。
请记住,目前只有具有 GitHub 远程仓库的项目才能使用远程索引。构建远程索引可能需要一些时间,尤其是如果您的项目很大时。请检查 工作区索引状态 UI 以查看远程索引是否已完成。
工作区搜索改进
我们还继续优化了 @workspace 和 #codebase 的代码搜索功能。亮点包括:
Git 更改上下文变量
在为 Chat 或 Edits 编写查询时,您现在可以使用 #changes 上下文变量引用在 Git 源代码管理中修改过的文件。例如,您可以提示 summarize the #changes in my workspace。

模型可用性
在使用 Copilot 时,现在有更多的模型可供选择。以下模型现在可在 Visual Studio Code 和 github.com 聊天中的模型选择器中使用:
-
OpenAI 的 o3-mini:OpenAI 最新的推理模型现已加入您的编码工作流程,正在逐步推广,并将提供给 GitHub Copilot Pro、Business 和 Enterprise 用户。在 GitHub 博客文章中了解更多关于 o3-mini 模型可用性的信息。
-
Gemini 2.0 Flash:Google 最新的模型在代码建议、文档和代码解释方面表现出强大的能力。该模型现在提供给所有 GitHub Copilot 客户,包括 Copilot 免费版用户。在 GitHub 博客文章中了解更多关于 Gemini 2.0 Flash 模型可用性的信息。
辅助功能
增强的辅助功能声音
根据用户反馈,我们优化了多项辅助功能声音,以提高清晰度和辨识度。以下声音已更新:
- accessibility.signals.save
- accessibility.signals.lineHasFoldedArea
- accessibility.signals.terminalQuickFix
- accessibility.signals.lineHasInlineSuggestion
您可以通过从命令面板运行 Help: List Signal Sounds 命令来预览这些更新。
Copilot Edits 辅助功能帮助对话框
屏幕阅读器用户现在可以通过在输入框内调用 ⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1) 来获取关于与 Copilot Edits 交互的指导。
此外,当编辑器包含待处理的 Copilot 编辑时,此状态现在会在编辑器帮助对话框中显示。我们还引入了键盘快捷键,用于导航下一个 ⌥F5 (Windows, Linux Alt+F5) / 上一个 ⇧⌥F5 (Windows, Linux Shift+Alt+F5)、接受 ⌘Y (Windows, Linux Ctrl+Y)、放弃 ⌘N (Windows, Linux Ctrl+N) 以及切换差异视图 。
源代码管理辅助功能帮助对话框
当源代码管理视图聚焦时,如果您调用 Show Accessibility Help 命令,它会打开“源代码管理辅助功能帮助”对话框,为屏幕阅读器用户提供重要信息。该对话框包含当前源代码管理状态的摘要,以及有关视图及其导航方式的常规信息。
改进的屏幕阅读器通知
检测到屏幕阅读器时,相关通知现在包含一个“了解更多”链接,提供额外的上下文和资源。
在文本转语音中忽略代码块
以前,当您使用文本转语音朗读 Copilot 响应时,代码块也会被朗读出来。您现在可以使用 accessibility.voice.ignoreCodeBlocks 设置,在文本转语音会话中忽略代码块。
工作台
移动命令面板和快速输入
您现在可以将命令面板和其他快速输入框移动到新位置,而不是将其固定在窗口顶部。
功能
- 拖放命令面板或任何其他快速输入框,支持捕捉到中心或顶部。
- 位置在重载后保持不变,允许您为快速输入设置新的永久位置。
- 预设位置可在“自定义布局”选择器中找到。
信任扩展发布者
当您首次安装某发布者的扩展时,现在会看到一个对话框,帮助您评估该扩展发布者的可信度。此功能有助于确保您仅从受信任的来源安装扩展,从而增强开发环境的安全性。

如果您安装扩展包或带有依赖项的扩展,信任发布者也将隐式信任随之安装的扩展的发布者。
更新到 VS Code 1.97 后,当前已安装扩展的发布者将被自动信任。您可以使用 Extensions: Manage Trusted Extensions Publishers 命令管理受信任的扩展发布者。此命令允许您重置或撤销对之前已信任发布者的信任。

注意:当没有打开 VS Code 窗口且您通过 CLI 安装扩展(code-insiders --install-extension pub.name)时,扩展会被安装,但发布者不会被添加到受信任列表中。
有关更多信息,您可以访问 了解更多 链接。
输出面板过滤
现在可以过滤“输出”面板的内容,这可以极大地改善日志的管理和分析,尤其是在处理大量日志数据时。

- 按日志级别过滤:根据严重性级别(例如错误、警告、信息)过滤日志。这有助于您优先关注最关键的问题。
- 按类别过滤:按特定类别缩小日志范围,允许您从特定源或组件隔离日志。类别会自动从日志数据中提取。
- 按文本过滤:在日志中搜索特定文本,以快速找到相关条目。
复合日志
有时您会发现信息分散在多个日志中,需要将它们放在一起查看才能获得完整图像。现在,您可以在单个复合日志视图中查看多个日志。结合新的 过滤 功能,分析日志变得更加高效!
要创建自定义复合日志,请使用“输出”面板溢出菜单中的 Create Compound Log... 操作。
您还可以在编辑器或新的 VS Code 窗口中打开复合日志,以便进行灵活的监控和分析。此功能通过提供相关日志的整合视图,提高了您诊断问题的能力。
注意:复合日志视图目前在 VS Code 重启后不会持久保存。
导出和导入日志
现在可以使用“输出”视图溢出菜单中的操作导出和导入日志。此功能通过简化日志的共享和查看,增强了协作和日志管理能力。
选择“输出”面板溢出菜单中的相应 Export Logs 或 Import Log 操作来导出或导入日志。
设置编辑器搜索修复
在此迭代中,我们修复了一个回归问题,即包含缺失字母的搜索查询无法显示预期结果。例如,当您搜索 “editor formonpast” 时,设置编辑器无法找到 editor.formatOnPaste 设置。
我们还修复了一个问题,即设置编辑器在搜索时即使在狭窄的编辑器组中也会显示目录。

主题:浅粉色(在 vscode.dev 上预览)
扩展过滤器增强
为了帮助您跟踪有更新可用的扩展并查找最近更新的扩展,您现在在“扩展”视图中有两个新的过滤选项:@outdated 和 @recentlyUpdated。

SVG 图像预览支持
内置图像预览现在对预览 SVG 文件提供了基本支持。

请查看 Visual Studio Marketplace 以获取更高级的 SVG 预览扩展。
从 CLI 中从工作区删除根文件夹
以前,您已经可以通过使用 --add 命令行 选项向 多根工作区 添加根文件夹。
现在,我们也增加了通过新的 --remove 命令行选项从多根工作区中删除根文件夹的功能。
code --remove /path/to/rootfolder
编辑器
持久化查找和替换历史记录
在上一个里程碑中,我们为编辑器查找控件引入了历史记录持久化功能。在本里程碑中,我们将其进一步扩展到替换输入控件,以便您可以分别在多个会话中维护这两个历史记录。替换历史记录按工作区存储,可以通过 editor.find.replaceHistory 设置禁用。
评论
关闭未提交的评论时的确认
当您按 esc 或以其他方式关闭具有未提交评论的评论控件时,将显示确认对话框。您可以通过设置 comments.thread.confirmOnCollapse 禁用此确认。
评论编辑器中的快速操作
快速操作可以在评论编辑器中使用。

源代码管理
Git 责备 (blame) 信息
在本里程碑中,我们继续优化在编辑器和状态栏中显示 Git 责备信息的功能。我们还改进了将鼠标悬停在编辑器装饰或状态栏项目上时显示的信息。

Git 责备状态栏项目现在默认启用,您可以使用 git.blame.statusBarItem.enabled 设置将其禁用。通过 git.blame.editorDecoration.enabled 设置启用 Git 责备编辑器装饰。
我们还添加了命令,通过命令面板或键绑定轻松切换 Git 责备信息:Git: Toggle Git Blame Editor Decoration 和 Git: Toggle Git Blame Status Bar Item。
GitHub 仓库
对于托管在 GitHub 上的仓库,我们在时间轴上下文菜单和悬停、源代码管理图表上下文菜单和悬停,以及 Git 责备编辑器装饰和状态栏项目悬停中添加了一个新命令:Open on GitHub。

GitHub 问题和拉取请求引用在时间轴、源代码管理图表,以及 Git 责备编辑器装饰和状态栏项目悬停中渲染为链接,以便轻松在浏览器中打开。
最后但同样重要的一点是,我们在时间轴、源代码管理图表,以及 Git 责备编辑器装饰和状态栏项目悬停中添加了 GitHub 头像。使用 github.showAvatar 设置可禁用 GitHub 头像的渲染。
源代码管理图表操作
我们通过在上下文菜单中添加针对历史记录项引用(例如分支标签)的操作,扩展了源代码管理图表视图的功能。我们添加的第一批操作是 Checkout、Delete Branch 和 Delete Tag,它们允许您直接从源代码管理图表视图中轻松检出分支/标签、删除分支和删除标签。
我们计划在即将到来的里程碑中添加更多操作。
Notebook
单元格执行时的内联值
Notebook 编辑器现在支持使用 notebook.inlineValues 设置在单元格执行后显示内联值。启用后,在成功的单元格执行后,内联值将根据已注册的 InlineValueProvider 的结果进行显示。
如果没有提供程序,后备方法会将内核中找到的值与单元格文档进行简单的正则表达式匹配。建议使用语言扩展提供的提供程序,以确保结果更准确。

Markdown 单元格的自定义字体系列
Notebook 编辑器现在支持为渲染的 Markdown 单元格设置自定义字体系列。这可以通过 notebook.markup.fontFamily 设置进行控制。留空时,将使用默认的工作台字体系列。

终端
连字支持
此功能现已被视为稳定版。以下是自上一版本以来的更改总结:
- 启用设置已从
terminal.integrated.fontLigatures更改为 terminal.integrated.fontLigatures.enabled 。 - 当光标或选区位于连字内时,连字现在会暂时禁用。
- 使用 terminal.integrated.fontLigatures.featureSettings 设置连字集和变体。这在后台被传递给
font-feature-settingsCSS 属性。 - 当不支持我们用于解析连字的库时,使用 terminal.integrated.fontLigatures.fallbackLigatures 手动设置连字序列。
支持 ConEmu 的进度转义序列
现在支持 ConEmu 首创的 ESC ] 9 ; 4 转义序列,该序列在终端中报告进度。一些 CLI 工具(如 winget)使用此功能来报告进度。要在终端选项卡中查看进度,请将 ${progress} 添加到 terminal.integrated.tabs.title 或 terminal.integrated.tabs.description 中。这通常显示为进度旋转图标或百分比。
截断命令的 Sticky Scroll
终端中的 Sticky Scroll ( terminal.integrated.stickyScroll.enabled ) 现在会在命令末尾用省略号显示命令截断情况。

配置最后一个终端关闭时的行为
新的 terminal.integrated.hideOnLastClosed 设置允许配置在关闭最后一个终端时是否关闭面板。此外,改进了没有终端打开时的体验。
任务
列号变量
新的 ${columnNumber} 变量可在 tasks.json 和 launch.json 中使用,以引用光标位置的列号。请查看 VS Code 文档中的变量完整列表。
调试
值过滤和搜索
现在,您可以在“变量”和“监视”视图中搜索视图 (⌥⌘F (Windows, Linux Ctrl+Alt+F)),以过滤变量和表达式的值,而不仅仅是名称。

在调试控制台中选择
调试控制台现在支持更长且更可靠的内容选择,使复制和粘贴更加容易。
JavaScript 调试器
脚本现在可以通过使用命令面板或编辑器操作中的 Debug: Pretty print for debugging 命令进行格式化美化 (pretty print),即使它们不是调试器当前暂停的源文件。
语言
TypeScript 5.7.3
此版本包含 TypeScript 5.7.3 恢复版本。此小更新修复了一些导入错误和回归问题。
右键点击从 Markdown 预览打开图像
您现在可以右键点击 Markdown 预览中的工作区图像,并选择 Open Image 在新编辑器中将其打开。

这支持当前工作区一部分的任何图像。
Markdown 链接验证状态项目
VS Code 的内置 Markdown 功能支持自动 验证指向文件和图像的本地链接。这是捕获常见错误的好方法,例如链接到重命名的标题或磁盘上不再存在的文件。
为了帮助您发现此功能,我们为链接验证添加了一个新的语言状态项目:

在打开 Markdown 文件的情况下,选择状态栏中的 {} 以查看链接验证状态。您还可以使用此状态项目快速开启或关闭链接验证。
新的 Ruby 语法高亮语法
我们已经放弃了来自 textmate/ruby.tmbundle 的旧且未维护的 Ruby 语法,现在从 Shopify/ruby-lsp 获取我们的 Ruby 语法。
远程开发
远程开发扩展允许您使用 Dev Container、通过 SSH 或 Remote Tunnels 的远程机器,或 Windows Linux 子系统 (WSL) 作为全功能开发环境。
亮点包括:
- 连接到旧版 Linux 服务器的迁移路径
- SSH Chat 参与者改进
- SSH 配置改进
- SSH 的默认远程扩展
您可以在 远程开发发行说明中了解有关这些功能的更多信息。
对扩展的贡献
Microsoft 账户
Microsoft 账户现在使用 MSAL(Windows 上支持 WAM)
注意:上个月推出的基于 MSAL 的 Microsoft 身份验证由于关键错误需要回滚。该错误已被消除,我们正在继续推广。
为了确保 Microsoft 身份验证的强大安全基线,我们在 Microsoft 账户扩展中采用了 Microsoft 身份验证库。
这项工作的一个突出特点是 WAM(Web Account Manager... 也称为 代理)集成。简单来说,我们不再去浏览器进行 Microsoft 身份验证流程,而是直接与操作系统对话,这是获取 Microsoft 身份验证会话的推荐方式。此外,它更快,因为我们能够利用您已经登录到操作系统的账户。

如果您在此新流程中看到任何问题,请告知我们。如果您确实看到严重问题并需要恢复到旧的 Microsoft 身份验证行为,可以通过 microsoft-authentication.implementation (将其设置为 classic 并重启 VS Code) 来实现,但请记住此设置不会存在太久。因此,如果您在使用 MSAL 流程时遇到问题,请提交议题。
Python
从终端启动原生 REPL
您现在能够从终端中的 REPL 启动 VS Code 原生 REPL。将 python.terminal.shellIntegration.enabled 设置为 true,应该会在终端的 Python REPL 中显示一个可点击的链接,允许您直接从终端打开 VS Code 原生 REPL。
免配置调试
您现在可以直接从终端调试 Python 脚本或模块,无需设置,这是新免配置调试功能的一部分!查看关于该功能的 维基页面 以获取所有细节和故障排除提示。
测试发现取消
当从 Test Explorer UI 触发测试发现时,您现在可以取消正在进行的测试发现调用。使用在发现期间代替刷新按钮出现的“取消”按钮。

转到实现 (Go to Implementation)
Pylance 现在支持 Go to Implementation,这允许您更快地直接从用法中导航到函数或方法的实现。这在处理继承类时是一个特别有用的功能。

AI 代码操作:生成符号 (实验性)
有一个新的实验性 AI 代码操作,用于通过 Pylance 和 Copilot 生成符号。要试用它,您可以启用以下设置:
"python.analysis.aiCodeActions": {"generateSymbol": true}
然后定义一个新符号(例如类或函数)后,您可以选择 Generate Symbol with Copilot 代码操作,让 Copilot 处理实现!如果需要,您可以使用 Pylance 的 Move Symbol 代码操作将其移动到不同的文件。
GitHub 拉取请求和议题
GitHub Pull Requests 扩展取得了更多进展,该扩展使您能够处理、创建和管理拉取请求和问题。新功能包括:
- 全局拉取请求查询,带有用于指定相对于今天的时间范围的变量 (
${today-7d})。 :<emoji-name>:样式的表情符号现在在评论中受支持。- 当您打开未检出拉取请求的描述时,所有非过期的评论都会显示在评论面板中。
查看扩展的 0.104.0 发行说明以了解其他亮点。
预览功能
代理模式 (实验性)
我们一直在为 Copilot Edits 开发一种新的 代理模式。当处于代理模式时,Copilot 可以自动在您的工作区中搜索相关上下文、编辑文件、检查错误并运行终端命令(需经您许可)来端到端地完成任务。

您可以使用 Copilot Edits 视图中的下拉菜单在几个月来使用的当前编辑模式和代理模式之间切换。要查看下拉菜单,请启用 chat.agent.enabled 此设置由组织级别管理。请联系您的管理员进行更改。 设置。您可以立即在 VS Code Insiders 中开始使用代理模式。我们将逐步向 VS Code 稳定版用户推广。如果设置在稳定版中未出现,说明您尚未启用。

在代理模式下,Copilot 自主运行,但它只能编辑当前工作区内的文件。当它想要运行终端命令时,会向您显示命令并等待您审查并选择“继续”后再继续。
注意:Copilot Edits 在代理模式下可能会使用许多聊天请求,因此它会定期暂停并询问您是否继续。您可以使用 chat.agent.maxRequests 自定义此设置。付费用户默认为 15,Copilot 免费用户默认为 5。
在 VS Code 文档中了解有关 Copilot Edits 代理模式 的更多信息。
智能代码库搜索 (预览版)
您可以将 #codebase 添加到查询中,Copilot Edits 将发现与您的任务相关的文件。我们添加了实验性支持,通过使用文件和文本搜索、Git 仓库状态和目录读取等额外工具来发现相关文件。以前,#codebase 仅执行语义搜索。
您可以通过 github.copilot.chat.edits.codesearch.enabled 启用它,并请分享您的任何反馈。
VS Code Insiders 中的 Copilot Vision (预览版)
我们在 VS Code Insiders 的 GitHub Copilot Chat 预发布版本中引入了端到端视觉支持。这使您可以附加图像并与 Copilot Chat 提示中的图像进行交互。例如,如果您在调试时遇到错误,请快速附加 VS Code 的屏幕截图并请 Copilot 帮助您解决问题。

您现在可以使用多种方法附加图像:
- 从您的操作系统或资源管理器视图拖放图像
- 从剪贴板粘贴图像
- 附加 VS Code 窗口的屏幕截图(选择 Attach > Screenshot Window)
如果所选模型目前没有处理图像的能力,则会显示警告。目前唯一支持的模型是 GPT 4o。当前支持的图像类型为 JPEG/JPG、PNG、GIF 和 WEBP。
可重用提示 (实验性)
此功能允许您构建、存储和共享可重用的提示。提示文件是一个 .prompt.md Markdown 文件,遵循与在 Copilot Chat 中编写提示相同的格式,并且可以链接到其他文件甚至其他提示。您可以附加提示文件以获取针对任务的指导、辅助代码生成,或保留完整的提示供以后使用。
要启用提示文件,请将 chat.promptFiles 设置为 true,或者使用 { "/path/to/folder": boolean } 符号指定不同路径。如果未指定其他路径,则默认使用 .github/prompts 文件夹来查找提示文件 (*.prompt.md)。
在 VS Code 文档中了解有关 提示文件 的更多信息。
Linux 上的自定义标题栏 (实验性)
在此里程碑中,我们开始了一项实验,为一部分 Linux 用户启用自定义标题栏。

如果您不在实验范围内,可以手动将 window.titleBarStyle 配置为 custom 以进行尝试。
您可以随时从自定义标题上下文菜单中或通过将 window.titleBarStyle 配置为 native 来恢复到原生标题装饰。

TypeScript 5.8 beta 支持
此版本包含对 TypeScript 5.8 beta 版本的支持。查看 TypeScript 5.8 博客文章 以了解此版本内容的详细信息。
要开始使用 TypeScript 5.8 的预览构建,请安装 TypeScript Nightly 扩展。分享您的反馈,并让我们知道您在使用 TypeScript 5.8 时是否遇到任何错误。
更多 Shell 的终端补全
我们对 上一版本中引入 的通用终端补全进行了迭代,这些补全是基于我们新的提议 API 构建的。一旦通过 terminal.integrated.suggest.enabled 启用,新的补全现在取代了之前 PowerShell 的内置提供程序,但现在可以使用 terminal.integrated.suggest.providers 进行自定义。
这是此版本的主要更新:
- 增强了小部件样式和配置,以与编辑器的建议小部件保持一致。
- 可配置的状态栏 ( terminal.integrated.suggest.showStatusBar ) 提供了上下文操作和信息。
- 改进了命令的参数感知能力,包括:
code、code-insiders、cd、ls、rm、echo、mkdir、rmdir、touch。 - 显示命令或资源路径作为详细信息。
- 增加了对目录导航快捷方式(如
.、..和../../)的支持。 - 启用了屏幕阅读器使用。
- 从
$PATH获取的条目现在仅在它们是可执行文件时才会显示。由于 Windows 没有文件元数据中可执行位的概念,扩展列表可以通过 terminal.integrated.suggest.windowsExecutableExtensions 进行配置。如果可用,这些现在也使用即将推出的提议 API 使用实际的 shell 环境。 - 增强的键盘支持以切换详细信息 ⌃Space (Windows, Linux Ctrl+Space) 以及切换建议详细信息焦点 ⌃⌥Space (Windows, Linux Ctrl+Alt+Space)。
- 建议现在将始终在每次输入时显示,与编辑器中快速建议的工作方式更加一致。
- 特定于 PowerShell 的全局补全(如
Get-ChildItem、Write-Host等)现在将被建议。
基于 Tree-Sitter 的 TypeScript 语法高亮
由于我们的许多 Textmate 语法不再维护,我们一直在调查使用 Tree-Sitter 进行语法高亮。我们从 TypeScript 开始,以便团队可以自托管它并提供反馈。您可以通过 editor.experimental.preferTreeSitter 设置尝试早期预览。
扩展开发
文档粘贴 API
文档粘贴 API 允许扩展挂钩到文本文档中的复制/粘贴操作。使用此 API,您的扩展可以:
-
在复制时,将数据写入剪贴板。这包括写入可以在粘贴时获取的元数据。
-
在粘贴时,生成应用粘贴的自定义编辑。这可以更改正在粘贴的文本内容,或者进行更复杂的编辑,例如创建新文件。
-
提供多种粘贴内容的方式。用户可以使用粘贴控件或通过
editor.pasteAs.preferences设置选择应如何粘贴内容。
VS Code 使用文档粘贴 API 来实现诸如 为 JavaScript 和 TypeScript 更新粘贴时的导入 以及 粘贴 URL 时自动创建 Markdown 链接 等功能。
要开始使用文档粘贴 API,请查看 文档粘贴扩展示例。有关更复杂的示例,请查看内置 Markdown 扩展如何 实现图像文件的粘贴 以将图像插入到 Markdown 文档中。
文件 openLabel 在简单文件选择器中显示
OpenDialogOptions 中的 openLabel 属性现在在 简单文件选择器 中受支持(除了以前仅支持的系统文件选择器之外)。这允许您为文件选择器中的按钮提供自定义标签。
文件级评论 API
评论 API 支持制作和显示文件级评论。文件级评论显示在文件顶部,第一行之前。它们不附着于文件中的特定行或范围。要显示文件级评论,请将评论的 range 设置为 undefined。要支持从评论范围提供程序留下文件级评论,请将 CommentingRangeProvider 上的 enableFileComments 属性设置为 true。
提议的 API
终端补全提供程序
您现在可以 注册终端补全提供程序,并在 此 GitHub 问题 中告知我们您的想法。
这方面的一个示例可以在我们的终端建议扩展中找到,当通过 terminal.integrated.suggest.enabled 启用时,它提供补全。
终端 Shell 类型
扩展将能够 访问当前活动的 Shell 类型信息。shellType 字段将成为 TerminalState 的一部分。
使用此 Shell 类型信息来执行您需要的 Shell 特定操作。
工程
内务管理
作为我们 12 月份年度内务整理工作的一部分,我们专注于清理所有仓库中的 GitHub 问题和拉取请求。今年,我们实现了 3,821 个问题和拉取请求的净减少,确保了我们的积压工作保持相关和可管理。
通过遵循我们的问题清理指南,我们审查并分流了过时、重复且不再相关的问题。这有助于我们保持高效的开发工作流程,并专注于为我们的用户改进 Visual Studio Code。
感谢社区的持续参与和反馈 —— 您的贡献使 VS Code 每一天都在变得更好!🚀

TypeScript 工作区中文件监视的资源优化
已经进行了一些优化,以减少文件监视在大型 TypeScript 工作区(数千个 TypeScript 文件或项目)中的开销。具体来说,当打开此类工作区并初始化监视器时,您应该不再看到 CPU 峰值,或者 CPU 使用率应该会迅速稳定下来。
查看此 VS Code 问题 以获取更多详细信息。
值得注意的修复
- 160325 抑制按下 ctrl+D 后的终端启动失败
- 230438 支持代码页
1125(即cp866u) - 238577 增加默认窗口大小
- 197377 在 launch.json 或 tasks.json 中,workspaceFolder 变量替换应针对虚拟文件系统使用 URI
- 229857 运行“focus comment on line”(聚焦于行内注释)后,无障碍视图显示为空白
感谢
最后但同样重要的是,向 VS Code 的贡献者们致以衷心的感谢。
问题跟踪
对我们问题跟踪的贡献
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
- @starball5 (starball)
拉取请求
对 vscode 的贡献
- @Abrifq (Arda Aydın): 修改“创建新终端”以根据终端位置正确聚焦 PR #237404
- @adrianstephens: 自定义编辑器预览 PR #235533
- @andrewsuzuki (Andrew Suzuki): 修复 editorBracketHighlight.unexpectedBracket.foreground 的 'new Color' 字符串拼写错误 PR #237236
- @aslezar (Shivam Garg)
- 修复错误的 GLIBC 版本解析 PR #236082
- feat: 支持自定义 JS switch-case 缩进 PR #237069
- @atreids (Aaron Donaldson): chore: 修复 VSIX 进度通知中的拼写错误 PR #238845
- @BABA983 (BABA): 使用规范资源解析自定义编辑器 PR #226614
- @congyuandong (scott): fix: 删除 dependenciesSrc 中重复的
!**/*.mk条目 PR #236683 - @DetachHead: 移除
javascript.inlayHints.enumMemberValues.enabled,因为 JavaScript 没有枚举 PR #236297 - @devm33 (Devraj Mehta): 为 github-authentication 使用 Electron fetch 或 Node fetch 以支持代理 PR #238149
- @dmitrysonder (Dmitry Sonder): refactor: 在事件中使用 EventType 常量 PR #236941
- @fa0311 (ふぁ): 修复 ${unixTime} 占位符,在 markdown.copyFiles.destination 中使用完整毫秒时间戳 PR #239061
- @g122622: “文件”菜单的滚动条显示在“打开最近”上方 PR #236998
- @gjsjohnmurray (John Murray): 在“打开的编辑器”视图的溢出菜单中添加“配置”选项 PR #237678
- @goodmind (andretshurotshka): 修复 #44237:在任务中添加列号 PR #65264
- @HD787 (Henry)
- 为 markdown.copyFiles.destination 选项添加 ${unixTime} 占位符 PR #238027
- 当仅打开配置文件时启用 TypeScript 命令 PR #238630
- @iamdereky (Derek Yang): 修复使用 HTML 转义引号时的 CSS 错误 PR #235367
- @jakebailey (Jake Bailey): 从 tsconfig.base.json 中移除路径 PR #238475
- @janajar (Jawad Najar): 修复:搜索编辑器中无结果时抛出错误 PR #235031
- @jaymroy: 问题:#214481 添加在文本转语音中忽略代码块的选项 PR #235697
- @jogibear9988 (Jochen Kühner): 在图像预览中支持 SVG PR #237217
- @Jules-Bertholet (Jules Bertholet): 在默认快捷键中支持后退和前进键 PR #237701
- @Legend-Master (Tony): 重新修复在没有手动传递“运行命令”参数/标志的情况下自定义任务 shell 无法工作的问题 PR #236058
- @LemmusLemmus: 在 Markdown 中将 $ 添加到环绕对 PR #233981
- @leopardracer (leopardracer): fix: 文档文件中的拼写错误 PR #235968
- @misode (Misode): 修复加载 JSON Schema 时缺失的 URI 到文件路径的转换 PR #237275
- @mohankumarelec (mohanram): 修复 #236973 PR #236974
- @notoriousmango (Seong Min Park): 在 Markdown 预览中添加“打开图像”上下文 PR #234649
- @numbermaniac: 修复 InlayHintKind 文档中的拼写错误 PR #238032
- @oltolm (oltolm): debug: 停止进程时忽略错误 PR #236009
- @oxcened (Alen Ajam)
- fix: 在小部件失去焦点时将 _lastFocusedWidget 设置为 undefined PR #234610
- fix: 在分配时检查 lastFocusedList 是否有效 PR #238765
- @pankajk07 (Pankaj Khandelwal): fix: 扩展程序的 Web Worker 同步脚本加载 PR #233175
- @Parasaran-Python (Parasaran)
- fix 227150: 添加递归 git clone 按钮 PR #232497
- fix 235221: 通过关闭未闭合的标签来清理 HTML 内容 PR #236145
- @r3m0t (Tomer Chachamu): 修复调试器停止时显示笔记本单元格并显示活动语句的问题(修复 #225290) PR #225292
- @rcjsuen (Remy Suen): 修复图标扩展点帮助文本中的拼写错误 PR #238393
- @RedCMD (RedCMD)
- 修复扩展预览代码块语言获取器 PR #235880
- 为扩展过滤器添加
outdated和recentlyUpdated建议 PR #235884
- @remcohaszing (Remco Haszing)
- 将 bun.lock 标记为 jsonc PR #235917
- 允许 jsonl 语言使用 .ndjson 扩展名 PR #235921
- @RiskyMH (Michael H):
bun.lock作为包管理器锁定文件 PR #236012 - @sunnylost (sunnylost): fix(settings-editor): 确保键名宽度不会缩小 PR #229919
- @tcostew: 允许 GitHub Copilot 聊天出现在 QuickAccess 中 PR #210805
- @tmm1 (Aman Karmani)
- build: 更新以包含更多 tsc 样板 PR #238422
- build: 将
build/tsconfig.json切换为module: nodenextPR #238426
- @tobil4sk: 合并分歧的 findExecutable 函数 PR #228373
- @zWingz (zWing): fix(git-ext): 修复 limitWarning 阻塞 git 状态进度的问题 PR #226577
对 vscode-eslint 的贡献
- @ShahinSorkh (Shahin Sorkh): 阐明在哪里设置
eslint.runtime和eslint.execArgv选项 PR #1973
对 vscode-extension-samples 的贡献
对 vscode-js-debug 的贡献
- @mdh1418 (Mitchell Hwang): 更新 BlazorDebugger 遥测报告事件 PR #2158
对 vscode-jupyter 的贡献
- @gy-mate (Máté Gyöngyösi): 将 'URL' 首字母大写 PR #16340
- @pwang347 (Paul): 为
onDidStart事件添加waitUntilPR #16375
对 vscode-loc 的贡献
- @NicoWeio (Nicolai Weitkemper): 改进 README 中的语法 PR #1367
对 vscode-prompt-tsx 的贡献
对 vscode-pull-request-github 的贡献
- @mikeseese (Mike Seese): 添加选择始终提示输入仓库以创建议题,并在议题文件中添加注释以指定仓库 PR #6115
- @NellyWhads (Nelly Whads): 移除 Python 语言用户提及异常 PR #6525
- @Ronny-zzl (Zhang): 不要在 jsx 和 tsx 文件的 JSDoc 中为 @ 提及的用户显示悬停卡片 PR #6531
对 vscode-pylint 的贡献
- @DetachHead: 针对由 pylint 错误引起的内存泄漏的临时解决方法 PR #585
对 vscode-python-debugger 的贡献
对 vscode-ripgrep 的贡献
- @fiji-flo (Florian Dieminger): 修复下载缓慢问题 PR #62
- @tmm1 (Aman Karmani): 针对 ARM64 Windows 的修复 PR #63
对 vscode-test 的贡献
- @kamaal111 (Kamaal Farah): docs: 更新 GitHub Actions 链接以指向示例 PR #297
对 language-server-protocol 的贡献
- @asukaminato0721 (Asuka Minato): cython-lsp PR #2064
- @catwell (Pierre Chapuis): 添加 Teal LSP PR #2078
- @Enaium (Enaium)
- @g-plane (Pig Fang): 新语言服务器:wasm-language-tools PR #2065
- @jcs090218 (Jen-Chieh Shen): chore(_implementors/servers.md): 更新 Ellsp 链接 PR #2073
- @kbwo (Kodai Kabasawa): 在 servers.md 中添加 testing-language-server PR #2076
- @kylebonnici (Kyle Micallef Bonnici): 在列表中添加 Devicetree LSP PR #2085
- @ribru17 (Riley Bruins): 添加 ts_query_ls (Tree-sitter 查询语言服务器) PR #2068