本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

2025年1月(版本1.97)

更新 1.97.1:此更新解决了这些安全问题

更新 1.97.2:此更新解决了这些问题

下载: Windows: x64 Arm64 | Mac: 通用 英特尔 | Linux: deb rpm tarball Arm snap


欢迎来到2025年1月发布的Visual Studio Code。这个版本有很多更新,我们希望你会喜欢,主要亮点包括:

如果您想在线阅读这些发行说明,请访问 更新 页面 code.visualstudio.com内部用户: 想尽快尝试新功能吗?您可以下载 内部用户 每夜构建版本,并在最新更新可用时立即尝试。

GitHub Copilot

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

设置

github.copilot.nextEditSuggestions.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

GitHub Copilot代码补全在自动补码方面非常出色,但因为大多数编码活动是编辑现有代码,所以补全的自然进化也是帮助编辑。因此,我们很高兴发布一个新预览功能,Copilot Next Edit Suggestions (Copilot NES)。

根据您所做的编辑,Copilot NES 既预测您下一个想要编辑的位置,也预测该编辑的内容。NES 建议与您当前工作相关的未来更改,您可以简单地按Tab键快速导航并接受建议。

注意在下面的示例中,更改变量会触发文件中更下面的编辑建议。只需使用Tab键进行导航并接受建议。 gutter 标记将引导您到下一个编辑建议。

视频显示Copilot NES在另一个位置建议代码编辑。侧边栏显示了一个箭头指示编辑的相对位置。

通过 VS Code 设置启用 Copilot NES

github.copilot.nextEditSuggestions.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
输入:.

根据编辑的大小和类型,建议的呈现可能会动态变化,从并排显示变为在当前行的下面显示。配置

编辑器.内联建议.编辑.并排显示
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
将设置始终将建议显示在当前行的下方。

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

注意:如果您是 Copilot Business 或 Enterprise 用户,您的组织管理员必须选择启用 Copilot 的“编辑预览功能”,此外您还需要设置

github.copilot.nextEditSuggestions.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
在你的编辑器中。

Copilot编辑

Copilot编辑正式发布

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

改进的编辑器控制

现在可以单独接受和拒绝编辑,从而给予您更多的控制权。此外,编辑控制选项在切换到并排视图时仍然可见。这对于理解较大的更改非常有用。

截图显示如何在编辑器中接受 Copilot Edits 的单个更改。 主题: GitHub 轻色色盲 (测试版) (预览于 vscode.dev)

最后,我们增加了一个新的设置,可以在配置的超时后自动接受编辑建议。该设置为

chat.editing.autoAcceptDelay
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
,这指定了更改被接受的秒数。当您与接受按钮互动或开始审查更改时,倒计时将停止。对于那些在周末追剧的人来说,这应该是很熟悉的。

主题: GitHub 轻色色盲 (测试版) (预览于 vscode.dev)

在编辑器中应用

在Copilot聊天中,任何代码块都可以通过在代码块的工具栏中使用应用到编辑器操作应用到工作区中的文件。我们对这一体验进行了多项改进:

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

    截图显示了“应用代码块”悬停文本,指示目标文件名。

  • 如果代码块对应的是一个不存在的文件,系统会提示您在哪里创建该文件。这可以是 Copilot 建议的文件路径、一个无标题编辑器,或者当前活动的编辑器。

  • 当计算和应用更改时,将使用与 Copilot 编辑相同的流程和用户界面。您可以单独查看、改进或丢弃每个更改。

时间背景

时间上下文在编辑或生成代码时很有帮助,因为它会告知语言模型您最近互动过的文件。我们正在实验和衡量其效果,但它也可以手动启用。

github.copilot.chat.editor.temporalContext.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
用于内联聊天和
github.copilot.chat.edits.temporalContext.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
Copilot编辑。

工作区索引状态UI

当你通过 问 Copilot 你项目中的代码相关问题时@工作区#代码库,我们使用一个索引来快速准确地搜索你的代码库,以找到相关的代码片段作为上下文。这个索引可以是 由 GitHub 管理的远程索引本地存储的索引基本索引,用于不能使用远程索引的大项目。

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

截图显示状态栏中Copilot工作区索引的状态。

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

建立远程工作空间索引

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

鉴于所有这些优势,我们增加了几种新的方法将项目升级到远程索引:

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

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

  • 选择第一个中的“构建索引”按钮@工作区您所看到的回复。这仅在您的项目符合资格时显示,并且每个工作区只会显示一次。

请记住,目前只有具有 GitHub 远程的项目才能使用远程索引。构建远程索引可能需要一些时间,特别是如果您的项目很大。请检查工作区索引状态界面以查看远程索引是否已完成。

工作区搜索改进

我们还继续优化代码搜索@工作区#代码库亮点包括:

Git更改上下文变量

在为 Chat 或 Edits 编写查询时,您现在可以使用以下方式引用在 Git 源代码控制中修改的文件。#更改上下文变量。例如,您可以提示总结我在工作区的#更改输入:.

显示 Copilot 聊天响应的截图,在提示“#changes”时列出了修改的文件和更改。

型号可用性

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

  • OpenAI的o3-mini:OpenAI最新的推理模型将逐渐推出,供GitHub Copilot Pro、Business和Enterprise用户使用。了解更多关于o3-mini模型可用性的信息,请参阅GitHub博客文章

  • Gemini 2.0 Flash:Google 最新型号在代码建议、文档和代码解释方面表现出高效能。现在,所有 GitHub Copilot 客户都可以使用该模型,包括免费的 Copilot。了解更多关于 Gemini 2.0 Flash 模型可用性的信息,请参阅 GitHub 博客文章

无障碍

增强无障碍音效

我们根据用户反馈改进了几个无障碍声音,以提高清晰度和区分度。以下声音已更新:

  • 无障碍信号保存
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
  • 可访问性.信号.线条是否有折叠区域
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
  • 可访问性.信号.终端快速修复
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
  • 可访问性.信号.行有内联建议
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开

您可以通过在命令面板中运行命令 Help: List Signal Sounds 来预览这些更新。

Copilot编辑无障碍帮助对话框

屏幕阅读器用户现在可以通过调用获得与Copilot编辑互动的指导: ⌥F1(Windows Alt+F1,Linux Shift+Alt+F1在输入框内。

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

源代码控制无障碍帮助对话框

如果你在源代码控制视图聚焦时调用显示无障碍帮助命令,它会打开源代码控制无障碍帮助对话框,为屏幕阅读器用户提供重要信息。对话框包含当前源代码控制状态的摘要以及有关视图和如何导航的常规信息。

改进的屏幕阅读器通知

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

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

之前,当你使用文本转语音读取Copilot响应时,代码块也会被读出来。你可以通过使用 来忽略文本转语音会话中的代码块。

无障碍语音忽略代码块
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。

工作台

移动命令面板和快速输入

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

特点:

  • 拖动并放下命令面板或任何其他快速输入,对齐到中心和顶部
  • 持久化位置,允许您为快速输入设置一个新的永久位置
  • 预设位置可在自定义布局选择器中找到

信任扩展出版商

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

显示用户安装扩展时出现的“信任发布者”对话框的截图。

如果您安装扩展包或具有依赖关系的扩展,信任发布者也将隐式信任一起安装的扩展的发布者。

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

截图显示了受信任发布者的快速选择列表,可以取消选中发布者以使它们变为不受信任。

注意:当没有打开 VS Code Windows,并且您从 CLI 安装扩展时 (code-insiders --install-extension pub.name),扩展已安装,但发布者未添加到信任列表中。

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

输出面板过滤

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

输出面板的截图,突出显示过滤下拉菜单。

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

复合日志

有时你会发现信息分散在多个日志中,你需要一起查看这些日志才能得到一个完整的图景。现在你可以在一个复合日志视图中查看多个日志。结合新的过滤功能,分析日志变得更加方便!

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

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

注意: 复合日志视图目前在 VS Code 重启时不会持久化。

导出和导入日志

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

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

设置编辑器搜索修复

在这一版本中,我们修复了一个回归问题,即搜索查询中缺少字母时未显示预期结果。例如,设置编辑器无法找到

编辑器.粘贴时格式化
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
您搜索“editor formonpast”时的设置。

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

截图显示的是一个窄宽度的设置编辑器,搜索“editor cursorStyle”显示了“editor.cursorStyle”设置,但没有揭示设置表目录。

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

扩展过滤器增强功能

为了帮助您跟踪有可用更新的扩展以及查找最近更新的扩展,您现在可以在扩展视图中使用两个新的过滤选项:@过时@最近更新输入:.

扩展视图中过滤选项的截图,突出显示“过时”和“最近更新”的选项。

SVG图像预览支持

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

显示 VS Code 中 SVG 图片默认预览的截图。

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

从命令行界面移除工作区中的根文件夹

之前,你已经可以将根文件夹添加到多根工作区中,使用--添加 命令行 选项。

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

代码 --移除 /路径/到/根文件夹

编辑器

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

最后一个里程碑,我们在编辑器的查找控制中引入了历史持久化。在这个里程碑中,我们将此进一步扩展到替换输入控制,这样您可以在多个会话中分别维护两者。替换历史记录按工作区存储,并且可以通过以下方式禁用

编辑器.查找.替换历史记录
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。

评论

关闭未提交评论的确认信息

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

评论.线程.折叠时确认
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
输入:.

评论编辑器中的快速操作

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

显示评论编辑器中快速操作的截图。

源代码管理

Git 责任信息

这个里程碑,我们继续优化功能,以便在编辑器和状态栏中显示git blame信息。我们还改进了当你悬停在编辑器装饰或状态栏项目上时显示的信息。

显示在状态栏上悬停在Git blame项上的Git blame信息的截图。

git blame 状态栏项目现在默认启用,您可以使用以下方法禁用它

git.blame.statusBarItem.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。启用git blame编辑器装饰
git.blame.editorDecoration.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。

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

GitHub 仓库

对于托管在GitHub上的仓库,我们已在时间轴上下文菜单和悬停菜单、源代码控制图上下文菜单和悬停菜单、git blame编辑器装饰和状态栏项目悬停中添加了一个新命令在GitHub上打开

源代码控制历史项悬停的截图,突出显示了在GitHub上打开的链接。

GitHub 问题和拉取请求引用在时间轴、源代码控制图、git 责任编辑装饰和状态栏项目悬停中显示为链接,以便可以轻松在浏览器中打开。

最后但同样重要的是,我们在时间轴、源代码控制图和git blame编辑器装饰以及状态栏项目悬停中添加了GitHub头像。通过使用

github显示头像
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。

源代码控制图操作

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

我们计划在即将到来的里程碑中增加更多的操作。

笔记本电脑

单元格执行时的内联值

笔记本编辑器现在支持在单元格执行后显示内联值,可以通过设置来启用

notebook.内联值
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
启用后,成功执行单元格后,内联值将根据注册的显示结果。内联值提供程序输入:.

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

在 notebook 编辑器中显示单元格执行后内联值的截图。

自定义Markdown单元格的字体族

笔记本编辑器现在支持为渲染的Markdown单元格设置自定义字体系列。这可以通过

笔记本标记字体
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。当留空时,使用默认的工作台字体系列。

显示渲染的Markdown单元格自定义字体的截图。

终端

支持捆绑

此功能现在被认为已经稳定。以下是自上一版本以来的更改总结:

  • 启用设置已更改从终端.集成.字体连字
    终端.集成.字体组合启用
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    输入:.
  • 当光标或选择在字形内时,字形现在暂时禁用。
  • 使用
    终端.集成.字体组合.特征设置
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    设置连字集和变体。这会被传递给字体特征设置CSS 属性幕后揭秘。
  • 使用
    终端.集成.字体连字.备用连字
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    当使用的解析库不受支持时,手动设置连字序列。

支持 ConEmu 的进度逃逸序列

ESC ] 9 ; 4ConEmu 采用的报告终端进度的 escape sequence 现在已得到支持。一些 CLI 工具(如 )使用了这一功能。翼装报告进度。要在终端标签中查看进度,请添加${进度}到任何一方

终端.集成.标签.标题
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
终端.集成.标签.描述
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
这通常显示为进度指示器或百分比。

粘性滚动用于截断命令

终端中的粘性滚动 (

终端.集成.粘性滚动.已启用
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
) 现在显示命令在末尾被省略时的情况:

截图显示在Sticky Scroll中,当命令被截断时,在命令末尾显示省略号。

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

新的

终端.集成.隐藏在最后一个关闭时
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置允许配置在最后一个终端关闭时面板是否关闭。同时,没有终端打开时的体验也得到了改进。

任务

列数变量

新的${列号}变量可以在任务.jsonlaunch.json 指光标位置的列号。查看 VS Code 文档中的 变量 全列表。

调试

筛选和搜索数值

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

调试时在变量视图中显示的搜索控件的截图。

在调试控制台中选择

调试控制台现在支持更长和更可靠的内客选择,使复制和粘贴更加容易。

JavaScript 调试器

脚本现在可以格式化打印,通过在命令面板或编辑器操作中使用调试:格式化打印用于调试命令,即使它们不是调试器当前暂停的源文件。

语言

TypeScript 5.7.3

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

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

现在,您可以在Markdown预览中右键点击一个工作区图像,并选择打开图像以在新的编辑器中打开它。

显示在Markdown预览中打开图像的上下文菜单选项的截图。

这支持当前工作区中的任何图像。

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

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

显示Markdown链接验证语言状态项的截图。

打开一个Markdown文件,选择输入:{}在状态栏中查看链接验证状态。您还可以使用状态项快速切换链接验证的开启和关闭。

新的Ruby语法高亮语法文件

我们已经离开了旧的、未维护的Ruby语法。textmate/ruby.tmbundle现在获取我们的Ruby语法Shopify/ruby-lsp输入:.

远程开发

远程开发扩展允许您通过SSH或远程隧道使用开发容器、远程机器或Windows子系统 for Linux(WSL)作为功能齐全的开发环境。

亮点包括:

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

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

对扩展的贡献

微软账户

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

注意:由于一个严重错误,上个月基于MSAL的Microsoft身份验证的推出不得不被回滚。这个错误已经被修复,我们正在继续进行推出。

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

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

显示操作系统在 VS Code 上显示的认证弹出Windows的截图。

如果您发现此新流程有任何问题,请告知我们。如果您确实发现重大问题并需要恢复到旧的 Microsoft 认证行为,您可以这样做。

microsoft-认证.实现
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
(将其设置为经典,重启 VS Code) 但请记住,这个设置不会持续太久。所以,如果你在 MSAL 流方面遇到问题,请提交一个 issue。

Python

从终端启动原生REPL

现在您可以在终端中从REPL启动VS Code原生REPL。设置

python.terminal.shellIntegration.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
应该在终端中的Python REPL中显示一个可点击的链接,允许您直接从终端中打开VS Code Native REPL。

无配置调试

现在,您可以在终端中直接调试Python脚本或模块,无需任何设置,这是全新的无需配置的调试功能的一部分!查看维基页面了解该功能的所有详细信息和故障排除技巧。

测试发现取消

当从测试资源管理器界面触发测试发现时,您现在可以取消正在进行的测试发现调用。使用取消按钮,该按钮在发现期间取代刷新按钮出现。

截图显示测试浏览器,突出显示取消按钮以取消测试发现。

转到实现

Pylance 现在支持 跳转到实现,允许您更快速地从函数或方法的使用直接导航到其实现。这在处理继承类时特别有用。

显示通过上下文菜单调用的“转到实现”的截图

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

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

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

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

GitHub 拉取请求和问题

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

  • 全局拉取请求查询,带有指定相对于今天的某个时间范围的变量${今天-7天})。
  • :😌:评论中现在支持表情符号。
  • 当您打开未合并的拉取请求描述时,所有非过时的评论都会显示在评论面板中。

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

预览功能

代理模式(实验性)

我们一直在开发一种新的代理模式,用于 Copilot 编辑。在代理模式下,Copilot 可以自动搜索您的工作区以找到相关上下文,编辑文件,检查文件是否有错误,并在您同意的情况下运行终端命令,以完成整个任务。

显示在 Copilot Edits 视图中代理模式的截图。

您可以在“Copilot Edits”视图中通过下拉菜单在我们已经使用了几个月的当前编辑模式和代理模式之间切换。要看到下拉菜单,请启用

聊天代理启用
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
ORG 设置。您今天可以在 VS Code Insiders 中开始使用代理模式。我们会逐步向 VS Code 稳定版用户推出。如果在稳定版中您的设置没有显示出来,那么它还没有为您启用。

在设置编辑器中代理模式设置的截图。

在代理模式下,Copilot 自主运行,但它只能编辑您当前的工作区中的文件。当它需要运行终端命令时,会向您显示该命令,并等待您进行审核并选择继续再执行。

注意:Copilot编辑可能会在代理模式下使用许多聊天请求,因此它将定期暂停并询问您是否继续。您可以使用

chat.agent.maxRequests
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
这默认为 Copilot 付费用户为 15, Copilot 免费用户为 5。

了解更多关于 代理模式在 Copilot 编辑中的 信息,请参阅 VS Code 文档。

代理代码库搜索(预览)

你可以添加#代码库对您的查询, Copilot Edits 将会发现与您的任务相关的文件。我们已经添加了使用文件和文本搜索、Git 仓库状态和目录读取等附加工具来发现相关文件的实验性支持。之前,#代码库仅进行了语义搜索。

您可以启用它

github.copilot.chat.edits.codesearch.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
,并且请分享任何反馈给我们。

VS Code Insiders 中的 Copilot 视图(预览)

我们将在GitHub Copilot Chat的预发布版本中引入端到端的视觉支持,在VS Code Insiders中。这使您能够在Copilot Chat提示中附加图像并与其互动。例如,如果您在调试时遇到错误,可以快速附加VS Code的屏幕截图并让Copilot帮助您解决该问题。

截图显示了一个附加图像的 Copilot Chat 提示。悬停在图像上会显示图像的预览。

您现在可以使用几种方法上传图片:

  • 从您的操作系统或资源管理器视图中拖放图像
  • 从剪贴板粘贴一张图片
  • 附加 VS Code Windows的截图(选择附加 > Windows截图)

如果所选模型目前没有处理图像的能力,将显示警告。目前唯一支持的模型将是GPT 4o目前,支持的图像类型有JPEG/JPG图像文件格式动图,和网络图像格式输入:.

可重复使用的提示(实验性)

此功能允许您构建、存储和共享可重复使用的提示。提示文件是一个提示.mdMarkdown文件遵循与Copilot Chat中编写提示相同的形式,可以链接到其他文件或甚至是其他提示。您可以附加提示文件以提供特定任务的指导,帮助代码生成,或保存完整的提示以供以后使用。

要启用提示文件,请设置

聊天.提示文件
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
,或使用{ "/路径/到/文件夹": 布尔值 }使用不同的路径。.github/提示文件夹默认用于定位提示文件*.提示.md),如果未指定其他路径。

了解更多关于提示文件的信息,请参阅VS Code文档。

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

这个里程碑,我们开始了一个实验,旨在为一部分 Linux 用户启用自定义标题栏。

显示 Linux 上自定义 VS Code 标题栏的截图。

如果你不是实验的一部分,你可以手动配置

Windows标题栏样式
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
定制去试试看。

您可以随时恢复到原生标题装饰,无论是从自定义标题上下文菜单还是通过配置

Windows标题栏样式
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
本地输入:.

显示在 Linux 上禁用自定义标题栏的内容菜单选项的截图。

TypeScript 5.8 测试版支持

此版本包括对 TypeScript 5.8 测试版的支持。请查看 TypeScript 5.8 博客文章 以了解此版本包含的内容。

要开始使用TypeScript 5.8的预览版本,请安装TypeScript Nightly扩展。分享您的反馈,并告知我们您在使用TypeScript 5.8时遇到的任何问题。

更多 shell 的终端补全

我们已经对通用终端完成进行了迭代,这些是在上一版本中引入的,并基于我们新提议的API构建。一旦启用

终端.集成.建议.启用
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
新的完成现在替换了之前为 PowerShell 预装的提供程序,但现在可以自定义
终端.集成.建议提供者
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
输入:.

以下是此版本的主要更新:

  • 增强小部件的样式和配置,以符合编辑器建议的小部件。
  • 一个可配置的状态栏
    终端.集成.建议.显示状态栏
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    ) 提供上下文操作和信息。
  • 改进了命令的参数意识,包括:代码代码内幕光盘ls删除回声创建目录移除目录触摸输入:.
  • 显示命令或资源路径作为附加详细信息。
  • 添加了对目录导航快捷键的支持,如输入:.请输入具体的网页文本内容,以便我进行翻译。,和../../输入:.
  • 启用屏幕阅读器使用。
  • 从...中提取的条目$PATH现在只显示可执行文件。由于 Windows 文件元数据中没有可执行位的概念,因此可以配置扩展列表
    终端.集成.建议.Windows可执行文件扩展名
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    这些现在也可以在可用时使用实际的 shell 环境,通过即将推出的 API 提议。
  • 增强的键盘支持以切换详细信息,⌃Space(Windows, Linux Ctrl+Space并切换建议详细信息焦点⌃⌥Space(Windows, Linux Ctrl+Alt+Space
  • 建议现在将始终应用于每种类型,更接近于在编辑器中快速建议的工作方式。
  • PowerShell特定的全局完成,例如获取子项Write-Host,等等。现在将建议。

基于 Tree-Sitter 的 TypeScript 语法高亮

由于我们许多 Textmate 语法不再维护,我们一直在研究使用 Tree-Sitter 来进行语法高亮。我们从 TypeScript 开始,这样团队就可以自我托管并提供反馈。你可以尝试早期预览版本的

编辑器.实验性的.偏爱树坐骑
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。

扩展编写

文档粘贴API

文档粘贴 API 允许扩展在文本文档中的复制/粘贴操作中进行钩子操作。使用此 API,您的扩展可以:

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

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

  • 提供多种方式将内容粘贴。用户可以选择使用粘贴控件或通过快捷键来决定如何粘贴内容。编辑器粘贴偏好设置设置。

VS Code 使用文档粘贴 API 来实现诸如 在粘贴时更新 JavaScript 和 TypeScript 的导入 以及 在粘贴网址时自动创建 Markdown 链接 等功能。

要开始使用文档粘贴 API,请查看 文档粘贴扩展示例。对于一个更复杂的示例,请查看内置的 Markdown 扩展如何 实现粘贴图像文件 以将图像插入到 Markdown 文档中。

文件打开标签显示在简单文件选择器中

打开标签物业在打开对话框选项 现在在 简单文件选择器 中支持(除了系统文件选择器,之前它在那里是独家支持的)。这允许您为文件选择器中的按钮提供自定义标签。

文件级注释 API

评论 API 支持创建和显示文件级别的评论。文件级别的评论显示在文件的顶部,即在第一行之前。它们不附属于文件中的特定行或范围。要显示文件级别的评论,请设置范围评论的未定义为了支持来自你的评论范围提供商的文件级评论,请设置启用文件评论你的财产评论范围提供者输入:.

提议的API

终端完成提供程序

你现在可以注册一个终端完成提供者并告诉我们你的想法在这个 GitHub 问题中.

一个例子可以在我们的终端建议扩展中找到,当通过启用时,它会提供补全。

终端.集成.建议.启用
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
输入:.

终端外壳类型

扩展将能够访问当前活动的外壳类型信息壳类型该领域将成为终端状态输入:.

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

工程

清洁工作

作为我们每年十二月进行的日常维护工作的一部分,我们重点清理了所有仓库的GitHub问题和拉取请求。今年,我们实现了减少3821个问题和拉取请求的净目标,确保我们的积压工作保持相关性和可管理性。

通过遵循我们的问题清理指南,我们审查和分类了过时、重复和不再相关的问题。这有助于我们保持高效的开发流程,并专注于改进Visual Studio Code以供用户使用。

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

显示过去几年未解决问题数量趋势的图表。该图表显示在12月,即维护月份,每年都有急剧下降。

TypeScript工作区中文件监控的资源优化

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

请参阅此 VS Code 问题 以获取更多详细信息。

重要修复

  • 160325 按下 ctrl+D 后抑制终端启动失败
  • 230438 对代码页的支持 1125又名cp866u
  • 238577 增加默认Windows大小
  • 197377 在 launch.json 或 tasks.json 中,workspaceFolder 变量替换应使用 URI 用于虚拟文件系统
  • 229857 运行后a11y视图是空白的 聚焦在线评论

谢谢

最后但同样重要的,向VS Code的贡献者们致以深深的谢意

问题跟踪

对我们的问题跟踪的贡献:

拉取请求

贡献于Visual Studio Code输入:

贡献于vscode-eslint输入:

贡献于vscode扩展示例输入:

贡献于vscode-js调试输入:

贡献于vscode-jupyter输入:

贡献于vscode-loc输入:

贡献于vscode-prompt-tsx输入:

贡献于vscode-拉取请求-GitHub输入:

贡献于vscode-pylint输入:

贡献于vscode- Python调试器输入:

贡献于vscode-ripgrep输入:

贡献于vscode测试输入:

贡献于语言服务器协议输入: