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

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 月版本。此版本有许多更新,我们希望您喜欢,其中一些主要亮点包括:

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

GitHub Copilot

Copilot 下一个编辑建议(预览版)

设置github.copilot.nextEditSuggestions.enabled

GitHub Copilot 代码补全在自动补全方面很出色,但由于大多数编码活动是对现有代码进行编辑,因此将其演变为也帮助进行编辑是自然而然的。因此,我们很高兴发布一项新的预览功能,Copilot 下一个编辑建议(Copilot NES)。

根据您正在进行的编辑,Copilot NES 会预测您想要进行的下一个编辑的位置以及该编辑的内容。NES 建议与您当前工作相关的未来更改,您只需按 Tab 即可快速导航和接受建议。

在下面的示例中,您会注意到更改一个变量会触发文件中更远处的编辑建议。只需使用 Tab 键导航和接受建议。装订线指示器将引导您找到下一个编辑建议。

Video showing Copilot NES suggesting code edits at another location. The gutter shows an arrow indicating the relative position of the edit.

通过 VS Code 设置 github.copilot.nextEditSuggestions.enabled 启用 Copilot NES。

根据编辑的大小和类型,建议的渲染方式可能会从并排动态更改为当前行的下方。配置 editor.inlineSuggest.edits.renderSideBySide 设置,以始终在当前行的下方渲染建议。

Copilot NES 正在快速发展,我们迫不及待地想在我们的仓库中通过 issues 获得您的反馈。您可以阅读我们的完整Copilot NES 文档,了解更多信息和场景,随着我们扩展 NES 体验。

注意:如果您是 Copilot Business 或 Enterprise 用户,您的组织管理员必须选择加入 Copilot “编辑器预览功能”,此外您还需要在编辑器中设置 github.copilot.nextEditSuggestions.enabled

Copilot 编辑

Copilot 编辑通用可用性

在我们的 VS Code 十月版本中,我们宣布了 Copilot 编辑的预览。今天,我们宣布 Copilot 编辑通用可用!Copilot 编辑已针对代码编辑进行了优化,使您能够直接从聊天中对工作区中的多个文件进行代码更改。

改进的编辑器控件

现在可以单独接受和丢弃编辑,为您提供更多控制。新的是,在切换到并排视图时,编辑的编辑器控件仍保持可见。这对于理解较大的更改很有用。

屏幕截图,显示如何在 Copilot Edits 中接受单个更改。 主题:GitHub Light Colorblind (Beta)(在 vscode.dev 上预览)

最后,我们添加了一个新设置,用于在可配置的超时后自动接受编辑建议。相应的设置是 chat.editing.autoAcceptDelay,它指定了在接受更改之前的秒数。当您与接受按钮交互或开始审查更改时,倒计时会停止。如果您喜欢周末追剧,应该会对此感到熟悉。

主题:GitHub Light Colorblind (Beta) (在 vscode.dev 上预览)

在编辑器中应用

在 Copilot Chat 中,您可以使用代码块工具栏中的应用到编辑器操作将任何代码块应用到工作区中的文件。我们对该体验进行了多项改进。

  • 操作的悬停现在显示了代码块生成的文件的名称。

    Screenshot that shows the Apply Code Block hover text, indicating the target file name.

  • 如果代码块是为不存在的文件生成的,系统会提示您在哪里创建该文件。这可以是 Copilot 建议的文件路径,未命名的编辑器,或当前活动的编辑器。

  • 当更改被计算并应用时,将使用与 Copilot Edits 相同的流程和 UI。您可以单独审查、改进或丢弃每个更改。

时间上下文

时间上下文在编辑或生成代码时提供帮助,它通过向语言模型提供您最近与之交互过的文件的信息来起作用。我们正在试验并衡量其有效性,但也可以手动启用它,github.copilot.chat.editor.temporalContext.enabled 用于内联聊天,以及 github.copilot.chat.edits.temporalContext.enabled 用于 Copilot 编辑。

工作区索引状态 UI

当您通过使用 @workspace#codebase 向 Copilot 询问有关您项目代码的问题时,我们会使用索引来快速准确地搜索您的代码库以获取相关代码片段作为上下文。此索引可以是GitHub 管理的远程索引本地存储索引,或者基本索引,作为无法使用远程索引的大型项目的回退。

在本迭代中,我们在状态栏中的语言状态指示器中添加了新的工作区索引,该指示器显示 Copilot 使用的索引类型以及相关信息,例如正在重新索引的文件数。要查看此信息,只需选择 VS Code 状态栏中的 {} 图标。

Screenshot that shows the status of the Copilot workspace indexing in the Status Bar.

查看Copilot 工作区文档以获取有关工作区索引类型以及如何切换它们的更多信息。

构建远程工作区索引

远程工作区索引由 GitHub 管理。远程索引可以提供高质量的结果,即使对于大型项目也是如此。它们也只需要为每个 GitHub 项目构建一次,而不是为每个用户构建一次。

考虑到所有这些优点,我们添加了多种升级项目到远程索引的新方法:

  • 运行新的GitHub Copilot:构建远程索引命令。

  • 工作区索引状态 UI 中选择“构建索引”按钮。仅当您的项目符合远程索引条件时,才会显示此选项。

  • 选择您看到的第一个 @workspace 响应中的“构建索引”按钮。仅当您的项目符合条件时,并且每个工作区仅显示一次。

请记住,目前只有带有 GitHub 远程仓库的项目才能使用远程索引。构建远程索引也可能需要一些时间,特别是当您的项目很大时。查看工作区索引状态 UI 以了解远程索引是否已完成。

工作区搜索改进

我们还继续优化 @workspace#codebase 的代码搜索。亮点包括:

  • 使用远程索引时,改进了本地更改文件的跟踪和处理。

  • 本地索引添加了已更改文件的后台更新,以便 @workspace 问题无需等待它们更新。

  • 为大型项目优化了基本索引

Git 更改上下文变量

在为聊天或编辑编写查询时,您现在可以使用 #changes 上下文变量来引用 Git 源代码管理中已修改的文件。例如,您可以提示“summarize the #changes in my workspace”。

Screenshot of a Copilot chat response, which lists the modified files and changes when prompting for '#changes'.

模型可用性

现在,在使用 Copilot 时,您有更多的模型可供选择。以下模型现在可在 Visual Studio Code 和 github.com chat 的模型选择器中使用:

  • OpenAI 的 o3-mini:OpenAI 最新的推理模型已逐渐推出到您的编码工作流程中,并将提供给 GitHub Copilot Pro、Business 和 Enterprise 用户。在GitHub 博客文章中了解有关 o3-mini 模型可用性的更多信息。

  • Gemini 2.0 Flash:Google 的最新模型在代码建议、文档和代码解释方面表现出高能力。此模型现已提供给所有 GitHub Copilot 客户,包括 Copilot Free。在GitHub 博客文章中了解有关 Gemini 2.0 Flash 模型可用性的更多信息。

辅助功能

增强的可访问性声音

我们根据用户反馈改进了几种可访问性声音,以提高清晰度和区分度。以下声音已更新:

您可以通过从命令面板运行命令帮助:列出信号声音来预览这些更新。

Copilot 编辑可访问性帮助对话框

屏幕阅读器用户现在可以通过在输入框中调用:⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1) 来访问关于如何与 Copilot 编辑交互的指南。

此外,当编辑器包含待处理的 Copilot 编辑时,此状态现在会在编辑器帮助对话框中指示。我们还为导航到下一个 ⌥F5 (Windows, Linux Alt+F5) / 上一个 ⇧⌥F5 (Windows, Linux Shift+Alt+F5)、接受 ⌘Y (Windows, Linux Ctrl+Y)、丢弃 ⌘N (Windows, Linux Ctrl+N) 和切换 diff 视图 引入了键盘快捷键。

源代码管理可访问性帮助对话框

如果您在源代码管理视图处于焦点状态时调用显示可访问性帮助命令,则会打开源代码管理可访问性帮助对话框,为屏幕阅读器用户提供重要信息。该对话框包含当前源代码管理状态的摘要以及有关视图和如何导航它们的常规信息。

改进的屏幕阅读器通知

当检测到屏幕阅读器时,相关通知现在包含一个“了解更多”链接,提供额外的上下文和资源。

在文本到语音中忽略代码块

以前,当您使用文本到语音朗读 Copilot 响应时,代码块也会被朗读出来。您可以使用 accessibility.voice.ignoreCodeBlocks 设置从文本到语音会话中忽略代码块。

工作台

移动命令面板和快速输入

您现在可以将命令面板和其他快速输入移动到新位置,而不是将其固定在窗口顶部。

功能

  • 通过拖放命令面板或任何其他快速输入进行吸附到中心和顶部
  • 在重新加载时保留位置,允许您为快速输入设置新的永久位置
  • 在“自定义布局”选择器中提供预设位置

信任扩展发布者

当您首次从某个发布者安装扩展时,您将看到一个对话框,帮助您评估该扩展发布者的可信度。此功能有助于确保您只安装来自受信任来源的扩展,从而提高开发环境的安全性。

Screenshot that shows the Trust Publisher dialog that is shown when a user installs an extension.

如果您安装扩展包或带有依赖项的扩展,信任该发布者也将隐含地信任与之一起安装的扩展的发布者。

当您更新到 VS Code 1.97 版本时,当前已安装扩展的发布者将自动被信任。您可以使用扩展:管理受信任的扩展发布者命令来管理受信任的扩展发布者。此命令允许您重置或撤销先前信任过的发布者的信任。

Screenshot that shows the Quick Pick list of trusted publishers, enabling unchecking publishers to make them untrusted.

注意:当没有打开 VS Code 窗口并且您通过 CLI(code-insiders --install-extension pub.name)安装扩展时,该扩展会被安装,但发布者不会添加到信任列表中。

有关更多信息,您可以访问了解更多链接。

输出面板过滤

您现在可以过滤输出面板的内容,这可以大大改善日志的管理和分析,尤其是在您需要处理大量日志数据时。

Screenshot of the Output panel, highlighting the filtering dropdown.

  • 按日志级别过滤:根据严重性级别(例如,错误、警告、信息)过滤日志。这有助于您首先关注最关键的问题。
  • 按类别过滤:按特定类别缩小日志范围,使您能够隔离来自特定源或组件的日志。类别会自动从日志数据中提取。
  • 按文本过滤:搜索日志中的特定文本以快速找到相关条目。

复合日志

有时您会发现信息分散在多个日志中,并且需要将它们一起查看才能获得完整的画面。您现在可以在单个复合日志视图中查看多个日志。将其与新的过滤功能结合使用,日志分析将变得更好!

要创建自定义复合日志,请使用输出面板溢出菜单中的创建复合日志...操作。

您还可以将复合日志在编辑器或新的 VS Code 窗口中打开,以进行灵活的监控和分析。此功能通过提供相关日志的合并视图来提高您诊断问题的能力。

注意:复合日志视图当前在 VS Code 重启之间不持久。

导出和导入日志

您现在可以使用输出视图溢出菜单中的操作来导出和导入日志。此功能通过使共享和审查日志变得容易来增强协作和日志管理。

在输出面板的溢出菜单中选择相应的导出日志导入日志操作以导出或导入日志。

设置编辑器搜索修复

在此迭代中,我们修复了一个回归,即缺少字母的搜索查询无法显示预期结果。例如,当您搜索“editor formonpast”时,设置编辑器找不到 editor.formatOnPaste 设置。

我们还修复了一个问题,即设置编辑器在搜索时会显示目录,即使它位于一个狭窄的编辑器组中。

Screenshot of a narrow-width Settings editor, with a search for 'edtor cursstyle' that shows the 'editor.cursorStyle' setting and does not reveal the settings table of contents.

主题:浅粉色(在 vscode.dev 上预览)

扩展过滤器增强

为了帮助您跟踪有可用更新的扩展,并找到最近更新的扩展,现在在扩展视图中有两个新的过滤器选项:@outdated@recentlyUpdated

Screenshot of the filtering options in the Extension view, highlighting the 'outdated' and 'recentlyUpdated' options.

SVG 图像预览支持

内置图像预览现在支持基本的 SVG 文件预览。

Screenshot that shows the default preview of an SVG image in VS Code.

查看Visual Studio Marketplace以获取更高级的 SVG 预览扩展。

从 CLI 中移除工作区的根文件夹

以前,您已经可以通过使用 --add 命令行选项将根文件夹添加到多根工作区

现在,我们还通过新的 --remove 命令行选项添加了从多根工作区中移除根文件夹的功能。

code --remove /path/to/rootfolder

编辑器

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

在上一个里程碑中,我们为编辑器查找控件引入了历史记录持久化。在此里程碑中,我们将其进一步扩展到替换输入控件,以便您可以单独维护这两个控件,跨多个会话。替换历史记录按工作区存储,并且可以通过 editor.find.replaceHistory 设置禁用。

评论

未提交评论关闭时的确认

当您按 esc 或以其他方式关闭包含未提交评论的评论控件时,将显示确认对话框。您可以使用 comments.thread.confirmOnCollapse 设置禁用此确认。

评论编辑器中的快速操作

可以从评论编辑器中使用快速操作。

Screenshot that shows Quick actions in the Comments editor.

源代码管理

Git blame 信息

在此里程碑中,我们继续打磨在编辑器和状态栏中显示 Git blame 信息的这项功能。我们还改进了当您将鼠标悬停在编辑器装饰或状态栏项上时显示的信息。

Screenshot that shows Git blame information when hovering over the git blame item in the Status Bar.

Git blame 状态栏项现在默认启用,您可以通过使用 git.blame.statusBarItem.enabled 设置来禁用它。使用 git.blame.editorDecoration.enabled 设置启用 Git blame 编辑器装饰。

我们还添加了命令,以便通过命令面板或使用键绑定轻松切换 Git blame 信息:Git:切换 Git Blame 编辑器装饰Git:切换 Git Blame 状态栏项

GitHub 存储库

对于托管在 GitHub 上的存储库,我们在时间线上下文菜单和悬停、源代码管理图上下文菜单和悬停,以及 Git blame 编辑器装饰和状态栏项悬停中添加了一个新命令:在 GitHub 上打开

Screenshot of the Source Control history item hover, highlighting the Open on GitHub link.

GitHub 问题和拉取请求引用在时间线、源代码管理图以及 Git blame 编辑器装饰和状态栏项悬停中渲染为链接,以便可以在浏览器中轻松打开它们。

最后但同样重要的是,我们还在时间线、源代码管理图以及 Git blame 编辑器装饰和状态栏项悬停中添加了 GitHub 头像。使用 github.showAvatar 设置可以禁用 GitHub 头像的渲染。

源代码管理图操作

我们通过向作用于历史记录项引用(例如,分支标签)的上下文菜单添加操作,扩展了源代码管理视图的功能。我们添加的第一个操作是签出删除分支删除标签,允许您直接从源代码管理视图轻松签出分支/标签、删除分支和删除标签。

我们计划在接下来的里程碑中添加更多操作。

Notebook

单元格执行时的内联值

笔记本编辑器现在通过 notebook.inlineValues 设置支持在单元格执行后显示内联值。启用后,在成功执行单元格后,将根据已注册的 InlineValueProvider 的结果显示内联值。

如果没有提供程序,则回退方法通过简单的正则表达式匹配将内核中找到的值与单元格文档进行匹配。建议使用语言扩展提供的程序以确保更准确的结果。

Screenshot that shows inline values after cell execution in the notebook editor.

Markdown 单元格的自定义字体系列

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

Screenshot that shows a custom font for rendered Markdown cells.

终端

连字支持

此功能现已稳定。以下是自上一版本以来的更改摘要:

支持 ConEmu 的进度转义序列

现在支持 ConEmu 开创的用于在终端中报告进度的 ESC ] 9 ; 4 转义序列。一些 CLI 工具(如 winget)使用此来报告进度。要在终端标签页中查看进度,请将 ${progress} 添加到 terminal.integrated.tabs.titleterminal.integrated.tabs.description。这通常显示为进度微调器或百分比。

截断命令的粘滞滚动

终端中的粘滞滚动(terminal.integrated.stickyScroll.enabled)现在会在命令被截断并以省略号结尾时显示。

Screenshot that shows an ellipsis at the end of a command in Sticky Scroll when it is truncated.

配置最后一个终端关闭时的行为

新的 terminal.integrated.hideOnLastClosed 设置允许配置当最后一个终端关闭时面板是否关闭。同时,在没有打开终端时的体验也得到了改进。

任务

列号变量

新的 ${columnNumber} 变量可用于 tasks.jsonlaunch.json 中,以引用光标位置的列号。请参阅 VS Code 文档中完整的 变量 列表。

调试

按值过滤和搜索

您现在可以在视图中进行搜索(⌥⌘F (Windows, Linux Ctrl+Alt+F)),在“变量”和“监视”视图中,按变量和表达式的值进行过滤,而不仅仅是按名称。

Screenshot that shows the search control in the Variables view when debugging.

在调试控制台中选择

调试控制台现在支持更长、更可靠的内容选择,方便复制和粘贴。

JavaScript 调试器

脚本现在可以通过命令面板或编辑器操作中的 Debug: Pretty print for debugging 命令进行 * pretty print*,即使它们不是调试器当前暂停的源。

语言

TypeScript 5.7.3

此版本包括 TypeScript 5.7.3 恢复版本。此小更新修复了一些导入错误和回归问题。

右键单击以从 Markdown 预览中打开图像

您现在可以右键单击 Markdown 预览中的工作区图像,然后选择 **打开图像** 以在新编辑器中打开它。

Screenshot that shows the context menu option to open an image in the Markdown preview.

当前工作区中的任何图像都支持此功能。

VS Code 内置的 Markdown 功能支持自动 验证指向文件和图像的本地链接。这是捕获常见错误(例如链接到已重命名或不再存在于磁盘上的文件或标题)的好方法。

为了帮助您发现此功能,我们为链接验证添加了一个新的语言状态项

Screenshot that shows the Markdown link validation language status item.

打开 Markdown 文件时,单击状态栏中的 {} 可查看链接验证状态。您还可以使用此状态项快速切换链接验证的开/关。

新的 Ruby 语法高亮语法

我们已放弃旧的、未维护的 Ruby 语法 (来自 textmate/ruby.tmbundle),现在从 Shopify/ruby-lsp 获取 Ruby 语法。

远程开发

远程开发扩展 Remote Development extensions 允许您使用 Dev Container、通过 SSH 的远程计算机或 Remote Tunnels,或 Windows Subsystem for Linux (WSL) 作为功能齐全的开发环境。

亮点包括:

  • 连接 Linux 遗留服务器的迁移路径
  • SSH 聊天参与者改进
  • SSH 配置改进
  • 默认远程扩展用于 SSH

您可以在 远程开发发行说明 中了解有关这些功能的更多信息。

对扩展的贡献

Microsoft 帐户

Microsoft 帐户现在使用 MSAL(在 Windows 上支持 WAM)

注意:上个月推出的基于 MSAL 的 Microsoft 身份验证由于关键错误而被回滚。此错误已被修复,我们将继续进行推出。

为了确保 Microsoft 身份验证的强大安全基线,我们在 Microsoft 帐户扩展中采用了 Microsoft 身份验证库

这项工作的一个突出特点是 WAM(Web Account Manager...也称为 Broker)集成。简单来说,我们现在直接与操作系统通信,而不是通过浏览器进行 Microsoft 身份验证流程,这是获取 Microsoft 身份验证会话的推荐方式。此外,它速度更快,因为我们可以利用您已登录到操作系统中的帐户。

Screenshot that shows an authentication popup that the OS shows over VS Code.

如果您在此新流程中遇到任何问题,请告知我们。如果您遇到重大问题并需要恢复到旧的 Microsoft 身份验证行为,您可以通过 microsoft-authentication.implementation (将其设置为 classic,然后重启 VS Code)来实现,但请注意,此设置不会保留太久。因此,如果您在使用 MSAL 流程时遇到问题,请提交 issue。

Python

从终端启动原生 REPL

您现在可以从终端中的 REPL 启动 VS Code 原生 REPL。将 python.terminal.shellIntegration.enabled 设置为 true,应该会在终端的 Python REPL 中显示一个可点击的链接,让您可以直接从终端打开 VS Code 原生 REPL。

无配置调试

您现在可以从终端无缝调试 Python 脚本或模块,这是新的无配置调试功能的一部分!查看该功能上的 wiki 页面,了解所有详细信息和故障排除技巧。

测试发现取消

当从测试资源管理器 UI 触发测试发现时,您现在可以取消正在进行的测试发现调用。使用在发现期间替换刷新按钮的“取消”按钮。

Screenshot that shows the Test Explorer, highlighting the Cancel button to cancel the test discovery.

转到实现

Pylance 现在支持 **转到实现**,让您可以更快地直接从函数或方法的用法导航到其实现。当处理继承的类时,这是一个特别有用的功能。

Screenshot that shows the Go to Implementation displayed via the context menu

AI 代码操作:生成符号(实验性)

有一个新的实验性 AI 代码操作,用于使用 Pylance 和 Copilot 生成符号。要尝试它,您可以启用以下设置

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

然后,一旦您定义了一个新符号,例如类或函数,您就可以选择 **使用 Copilot 生成符号** 代码操作,让 Copilot 处理实现!如果您愿意,您还可以利用 Pylance 的 **移动符号** 代码操作将其移动到另一个文件。

GitHub 拉取请求和议题

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

  • 全局拉取请求查询,带有用于指定相对于今天的日期范围的变量(${today-7d})。
  • 现在支持注释中的 :: 风格表情符号。
  • 当您打开一个未签出的拉取请求的描述时,所有非过期的注释都会显示在“注释”面板中。

查看该扩展的 0.104.0 版本的 更新日志,了解其他亮点。

预览功能

代理模式(实验性)

我们一直在为 Copilot Edits 开发新的*代理模式*。在代理模式下,Copilot 可以自动在工作区中搜索相关上下文,编辑文件,检查错误,并运行终端命令(经您许可)以完成端到端的任务。

Screenshot that shows agent mode in the Copilot Edits view.

您可以在我们已经推出几个月的当前编辑模式和代理模式之间切换,方法是在 Copilot Edits 视图中使用下拉列表。要查看下拉列表,请启用 chat.agent.enabled 设置。您今天就可以在 VS Code Insiders 中开始使用代理模式。我们将逐步向 VS Code Stable 用户推出。如果设置没有出现在 Stable 版中,则表示它尚未为您启用。

Screenshot of the agent mode setting in the Settings editor.

在代理模式下,Copilot autonomously 运行,但它只能编辑当前工作区内的文件。当它想要运行终端命令时,它会向您显示命令,并等待您进行审查并选择“继续”后才能进行。

注意:Copilot Edits 在代理模式下可能会使用许多聊天请求,因此它会定期暂停并询问您是否继续。您可以使用 chat.agent.maxRequests 来自定义此设置。对于 Copilot 付费用户,此设置默认为 15,对于 Copilot 免费用户,则为 5。

在 VS Code 文档中了解有关 Copilot Edits 中*代理模式*的更多信息:Agent mode in Copilot Edits

代理式代码库搜索(预览版)

您可以向查询中添加 #codebase,Copilot Edits 将会为您的任务发现相关文件。我们已添加了对使用其他工具(如文件和文本搜索、Git 存储库状态和目录读取)发现相关文件的实验性支持。以前,#codebase 只执行语义搜索。

您可以通过 github.copilot.chat.edits.codesearch.enabled 启用它,请 与我们分享您的任何反馈

VS Code Insiders 中的 Copilot Vision(预览版)

我们在 GitHub Copilot Chat 的预发布版本 VS Code Insiders 中引入了端到端的 Vision 支持。这允许您在 Copilot Chat 提示中附加图像并与之交互。例如,当您在调试时遇到错误时,可以快速附加 VS Code 的屏幕截图并要求 Copilot 帮助您解决问题。

Screenshot that shows an attached image in a Copilot Chat prompt. Hovering over the image shows a preview of it.

您现在可以通过几种方法附加图像

  • 将图像从操作系统或资源管理器视图拖放到其中
  • 从剪贴板粘贴图像
  • 附加 VS Code 窗口的屏幕截图(选择“附加” > “屏幕截图窗口”)

如果当前选定的模型没有处理图像的能力,将显示警告。目前唯一支持的模型是 GPT 4o。目前支持的图像类型为 JPEG/JPGPNGGIFWEBP

可重用提示(实验性)

此功能允许您构建、存储和共享可重用提示。提示文件是 .prompt.md Markdown 文件,遵循在 Copilot Chat 中编写提示时使用的相同格式,并且它可以链接到其他文件,甚至其他提示。您可以附加特定任务的指导、辅助代码生成或保留完整的提示以供将来使用的提示文件。

要启用提示文件,请将 chat.promptFiles 设置为 true,或者使用 { "/path/to/folder": boolean } 表示法指定其他路径。如果未指定其他路径,则默认使用 .github/prompts 文件夹来查找提示文件(*.prompt.md)。

在 VS Code 文档中了解有关*提示文件*的更多信息:prompt files

Linux 上的自定义标题栏(实验性)

在本个里程碑中,我们正在进行一项实验,为一部分 Linux 用户启用自定义标题栏。

Screenshot that shows the custom VS Code title bar on Linux.

如果您不是实验的一部分,您可以手动将 window.titleBarStyle 配置为 custom 来尝试一下。

您始终可以从自定义标题上下文菜单或将 window.titleBarStyle 配置为 native,恢复到本机标题装饰。

Screenshot that shows the content menu option to disable the custom title bar on Linux.

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)提供上下文操作和信息。
  • 增强了命令的参数感知能力,包括:codecode-insiderscdlsrmechomkdirrmdirtouch
  • 显示命令或资源路径作为附加详细信息。
  • 增加了对目录导航快捷方式的支持,例如 ...../../
  • 启用了屏幕阅读器使用。
  • 来自 $PATH 的条目现在仅在它们是可执行文件时显示。由于 Windows 在文件元数据中没有可执行位概念,因此可以通过 terminal.integrated.suggest.windowsExecutableExtensions 配置扩展列表。这些现在也使用实际的 shell 环境(如果可用),使用即将推出的提议 API。
  • 增强了键盘支持,用于切换详细信息(⌃Space (Windows, Linux Ctrl+Space))和切换建议详细信息焦点(⌃⌥Space (Windows, Linux Ctrl+Alt+Space))。
  • 建议现在将始终在每次输入时显示,更接近编辑器中快速建议的工作方式。
  • 现在将建议特定于 PowerShell 的全局命令,例如 Get-ChildItemWrite-Host 等。

基于 Tree-Sitter 的 TypeScript 语法高亮

由于许多 Textmate 语法不再维护,我们一直在研究使用 Tree-Sitter 进行语法高亮。我们从 TypeScript 开始,以便团队可以自行托管并提供反馈。您可以通过 editor.experimental.preferTreeSitter 设置来尝试早期预览。

扩展开发

文档粘贴 API

文档粘贴 API 允许扩展程序挂钩文本文档中的复制/粘贴操作。使用此 API,您的扩展程序可以

  • 复制时,将数据写入剪贴板。这包括写入可以在粘贴时被获取的元数据。

  • 粘贴时,生成一个自定义编辑来应用粘贴。这可以更改正在粘贴的文本内容,或进行更复杂的对工作区的编辑,例如创建新文件。

  • 提供多种粘贴内容的方式。用户可以选择如何通过粘贴控件或使用 editor.pasteAs.preferences 设置来粘贴内容。

VS Code 使用文档粘贴 API 来实现诸如 JavaScript 和 TypeScript 的*粘贴时更新导入*(updating imports on paste for JavaScript and TypeScript)和*粘贴 URL 时自动创建 Markdown 格式链接*(automatically creating Markdown links when pasting URLs)等功能。

要开始使用文档粘贴 API,请查看 document paste extension sample。对于更复杂的示例,请查看内置 Markdown 扩展如何*实现图像文件的粘贴*以将图像插入 Markdown 文档:implements pasting of image files

文件 openLabel 在简单文件选择器中显示

OpenDialogOptions 中的 openLabel 属性现在支持*简单文件选择器*(simple file picker)(在系统文件选择器中也支持,之前仅在那里支持)。这允许您为文件选择器中的按钮提供自定义标签。

文件级注释 API

注释 API 支持创建和显示文件级注释。文件级注释显示在文件顶部,位于第一行之前。它们不附加到文件中的特定行或范围。要显示文件级注释,请将注释的 range 设置为 undefined。要支持从您的注释范围提供程序留下文件级注释,请将 enableFileComments 属性设置为 true

提议的 API

终端补全提供程序

您现在可以 注册一个终端补全提供程序,并在 此 GitHub issue 中告诉我们您的想法。

我们的终端建议扩展中有一个示例,该扩展在通过 terminal.integrated.suggest.enabled 启用后提供建议。

终端 Shell 类型

扩展程序将能够 访问当前活动 Shell 类型信息shellType 字段将是 TerminalState 的一部分。

使用此 Shell 类型信息执行您需要的特定于 Shell 的操作。

工程

内务管理

作为我们年度十二月例行维护工作的一部分,我们专注于清理所有存储库中的 GitHub issue 和 pull request。今年,我们净减少了 3,821 个 issue 和 pull request,确保我们的积压工作保持相关且可管理。

通过遵循我们的 issue 清理指南,我们审查并分类了过时、重复和不再相关的 issue。这有助于我们维护高效的开发工作流程,并专注于为用户改进 Visual Studio Code。

我们感谢社区持续的参与和反馈 — 您的贡献让 VS Code 每天都变得更好!🚀

Chart that shows the trend of the number of open issues over the last years. The chart shows a steep decline each year during December, the housekeeping month.

TypeScript 工作区的文件的资源优化

进行了一些优化,以减少大型 TypeScript 工作区(数千个 TypeScript 文件或项目)中文件监视的开销。具体来说,在打开此类工作区并初始化监视器时,您应该不再看到 CPU 峰值,或者 CPU 使用率应该会很快稳定下来。

有关更多详细信息,请参阅此 VS Code issue

值得注意的修复

  • 160325 按 Ctrl+D 后抑制终端启动失败
  • 230438 支持代码页 1125(即 cp866u
  • 238577 增加默认窗口大小
  • 197377 launch.json 或 tasks.json 中的 workspaceFolder 变量替换应使用 URI 处理虚拟文件系统
  • 229857 运行 focus comment on line 后,a11y 视图为空

感谢

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

问题跟踪

对我们问题跟踪的贡献

拉取请求

vscode 的贡献

vscode-eslint 的贡献

vscode-extension-samples 的贡献

vscode-js-debug 的贡献

vscode-jupyter 的贡献

vscode-loc 的贡献

vscode-prompt-tsx 的贡献

vscode-pull-request-github 的贡献

vscode-pylint 的贡献

vscode-python-debugger 的贡献

vscode-ripgrep 的贡献

vscode-test 的贡献

language-server-protocol 的贡献

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