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

2024年7月(版本1.92)

更新 1.92.1:该更新解决了这些问题

更新 1.92.2:该更新解决了这些问题

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


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

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

无障碍

改进的调试体验

无障碍帮助对话框

我们为“运行和调试”视图和“调试控制台”添加了辅助功能帮助对话框。当“运行和调试”视图之一获得焦点时,您会收到一个关于打开辅助功能帮助对话框的提示。通过设置来配置此提示。可访问性。详细程度。调试输入:.

调试控制台可访问视图

运行命令 打开无障碍视图 (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)) 以逐字符、逐行检查调试控制台内容。

设定调试.自动展开延迟变量现在启用屏幕阅读器优化模式,以便随时访问变量值。

当在调试控制台中评估一个表达式时,它的值现在会通知屏幕阅读器用户。

动态观察变量公告

启用屏幕阅读器进行调试时,现在可以听到watch变量值变化的声音。通过以下方式进行配置可访问性.调试观察变量公告输入:.

配置快捷键操作

在之前的里程碑中,我们引入了一个操作,用于在辅助功能帮助对话框中配置未分配的快捷键。我们现在添加了配置已分配的快捷键命令 (⌥A (Windows, Linux Alt+A))来补充这个操作。

工作台

将面板移至顶部

现在你可以将面板移动到工作台的顶部,编辑区域之上。默认情况下,面板位于底部,包括终端、输出面板和调试控制台等视图。此增强功能补充了将面板定位到左侧、右侧和底部的现有选项。

配置文件编辑器预览

在这个里程碑中,我们继续改进配置文件编辑器,使其更加用户友好,并使其外观和感觉与设置编辑器保持一致。

用户配置文件编辑器显示所有用户配置文件及其设置。

配置文件编辑器作为实验性功能提供在 behind工作台.实验性.启用新配置文件界面设置。启用后,您可以通过Windows左下角的设置齿轮图标访问配置文件编辑器。

设置菜单显示了配置文件菜单项,用于打开配置文件编辑器。

覆盖现有配置文件

您现在可以通过创建具有相同名称的新配置文件来覆盖现有配置文件,包括默认配置文件。

改进的扩展更新体验

我们对扩展更新体验进行了多项改进,使您对扩展更新有更多的控制权,并使扩展的自动更新管理更加容易。

自动更新所有扩展

我们在扩展视图标题区域更改了全局扩展自动更新操作为启用所有扩展的自动更新禁用所有扩展的自动更新操作。通过这些操作,您可以同时启用或禁用所有扩展的自动更新。

管理自动更新的扩展。

自动更新各个扩展

我们改进了单个扩展自动更新的体验,始终显示启用或禁用扩展自动更新的操作。这使得管理扩展自动更新更加容易。

每个扩展自动更新配置。

禁用通过 VSIX 安装的扩展的自动更新

当您通过VSIX安装一个扩展时,该扩展的自动更新默认是禁用的。这使您能够使用您安装的扩展版本,而不会自动更新。

更多控制更新扩展的权限

当您将带有可执行代码的已安装扩展版本更新到带有可执行代码的版本时,现在需要用户同意。这使您能够在应用更新之前进行审查。以下视频演示了更新带有代码的扩展的体验。

选择评论按钮会在浏览器中打开扩展更改日志或扩展库。您可以查看更改,然后决定是否更新扩展。

设置编辑器跳转问题已解决

在修改一个设置并切换到另一个时,设置编辑器会跳转。而且,在修改设置之前滚动得越多,这种跳转就越明显。 我们改变了设置编辑器在修改设置后重新渲染设置的方式,现在修改设置后设置编辑器不再跳转。

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

设置的URL处理

VS Code 现在可以处理格式为 "settings" 的 URLsvscode://设置/setting.name输入:vscode-insiders://设置/设置名称给内部人士,和代码-oss对于OSS版本) 并将打开设置编辑器到指定设置。如果没有设置,则仍然会打开设置编辑器。当在发布说明中使用带有设置URL的锚标签,并且发布说明在VS Code中打开时,我们会进行特殊处理和渲染,如前面所述编码设置功能。

在发行说明中设置 URL

一个新的设置工作台.外部浏览器使您能够配置用于打开链接的浏览器。默认情况下,使用操作系统标准浏览器。您可以在每个工作区级别进行此设置,并且也可以启用 Settings Sync。

指定浏览器可执行文件的完整路径作为设置值。或者,为了确保在不同设备上正常运行,您还可以使用浏览器别名,例如边缘谷歌浏览器,或火狐浏览器输入:.

配置浏览器以打开链接。

禁用拖放时自动打开文件

之前,将文件拖放到资源管理器中时,也会自动在编辑器中打开。在某些情况下,这可能并不理想。一个新的设置explorer.自动打开拖放的文件使您能够切换此行为。默认情况下,当文件被拖动和放下时,文件将继续打开,但当设置为此行为已禁用。

编辑器

灯泡控制改进

有时,灯泡控制可能会阻止编辑器中的代码。为了解决这个问题,我们改进了灯泡控制的启发式算法,当没有空间时,该算法会在行号区域显示灯泡,而不是阻止编辑器中的代码。

灯泡与代码重叠(左)与放置在排水沟(右)。

您可以在编辑器中通过 切换灯泡控制编辑器.灯泡.启用设置。

差异编辑器

更紧凑的聊天差异

我们在聊天视图/内联聊天中对差异编辑器布局进行了迭代,并使其更加紧凑。

之前:

以前的差异编辑器布局,不那么紧凑。

之后:

更紧凑的差异编辑器布局。

源代码管理

收入/支出变化图

这个里程碑,我们使用图来可视化进入和离开的更改。该图包含当前分支、当前分支的上游分支和一个可选的基分支。图的根是这些分支的公共祖先。

我们对历史项目悬停进行了多项改进:

  • 启用多选以查看同一分支的历史记录项的更改。
  • 增加了选项到请输入具体的网页文本内容,以便我进行翻译。菜单用于过滤来自远程/基分支的历史项目。
  • 添加了获取、拉取和推送历史项的操作。

试试看并告诉我们你的想法!

您可以通过切换来禁用入站/出站更改的图形可视化。scm.显示历史图设置。

源代码管理视图显示了入站和出站更改的图形可视化。

终端外壳集成

源代码管理视图在每次源代码管理操作以及特定文件/文件夹的文件系统事件之后都会刷新。当在集成终端中执行git命令时,命令完成和源代码管理视图刷新之间可能会有一个延迟。为了减少这个延迟,从这个里程碑开始,我们使用终端外壳集成API来检测各种git命令的成功完成(例如,添加结账提交获取在集成终端中执行更多命令并刷新源代码控制视图。

笔记本电脑

多单元格评论

Notebook编辑器现在支持一次切换一个或多个单元格的注释。通过选择一个或多个单元格容器,然后按键盘快捷键⌘/(Windows, LinuxCtrl+/来实现。

终端

新的滚动条

终端中的滚动条现在看起来就像编辑器中的滚动条:

终端滚动条现在看起来和编辑器的滚动条一样。

概览标尺与之前相同,成功命令在左侧,查找结果在中间,失败命令在右侧。但是现在它完美地与滚动条滑块对齐。

调试

在调试时显示变量类型

VS Code 现在在调试时显示变量的数据类型,当设置调试显示变量类型已打开:

在调试时,在变量部分显示变量的数据类型。

语言

VS Code 现在可以通过更新任何复制和粘贴文本中的链接,帮助你在 Markdown 文档之间移动文本部分。有了这个功能,VS Code 会修复所有相对路径链接、参考链接和所有带有相对路径的图片/视频,以便它们在新文档中可以正常工作。

每当您在两个Markdown文件之间复制并粘贴带链接的文本时,此功能就会生效。如果有可以更新的链接,您将在粘贴后看到粘贴小部件。选择“粘贴并更新粘贴的链接”,VS Code将为您修复链接。

您可以通过设置完全禁用此功能markdown.粘贴时更新链接输入:.

粘贴和拖放文件在CSS中

你需要在你的CSS中使用图像吗?现在你可以快速插入一个网址()只需通过拖放来引用,或者将图像文件复制并粘贴到CSS编辑器中:

远程开发

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

亮点包括:

  • GPG 密钥箱d 支持
  • 本地端口范围配置

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

对扩展的贡献

GitHub Copilot

GPT-4o 升级用于 Copilot 聊天

我们已将 Copilot Chat 视图从 GPT-4-Turbo 升级到 GPT-4o,这是 OpenAI 目前最强大的模型。我们的实验表明,GPT-4o 显著提升了 Copilot 的编码能力,能够更快、更准确、更高质量地在您的编辑器中提供代码和解释。这在发布过程中显而易见,随着开发者越来越多地使用 Copilot Chat 视图并采用其更多的代码建议,这一点变得越来越明显。

我们不断进行实验,以确定最适合各种任务的模型,同时在性能和能力之间进行平衡,并致力于质量、安全性和安全性。有关 GitHub Copilot 中采用 GPT-4o 的更多详细信息,请查看 GitHub 的更改日志.

在聊天中公开代码匹配

您可以允许 GitHub Copilot 返回可能与 GitHub.com 上的公开代码匹配的代码。当此功能在您的 组织订阅个人订阅 中启用时,Copilot 代码补全已经为您提供检测到的匹配的详细信息。我们正在努力在 Copilot Chat 中向您显示这些公开代码的匹配。

我们正在逐步向Copilot Chat用户推出此功能。一旦启用,您可能会在响应的末尾看到一个带有查看匹配链接的消息。如果您选择该链接,将打开一个编辑器,显示匹配代码引用的更多详细信息。

聊天代码引用示例。

聊天请求中的附件

Copilot Chat 支持通过 附加上下文 (⌘/ (Windows, Linux Ctrl+/)) 命令向您的聊天请求中添加显式附件。这些附件现在会在聊天历史记录中提交的聊天请求中显示。选择文件附件会在编辑器中打开相应的文件和范围。

聊天请求中的附件

此外,我们现在更清楚地说明了当大附件超出上下文Windows时,请求中被部分或完全省略的上下文Windows。

警告和大型附件悬停

改进至/新

我们更新了/新斜线命令以支持快速文件生成。您可以通过使用聊天变量,在文件或项目创建时为 Copilot 提供额外的上下文,例如#选择此外,/新增强功能以使生成的文件和文件夹能够保存在现有的工作区中。

在 Copilot Chat 中使用 /new 创建一个新的单个文件。

从聊天访问 VS Code 命令

一个新的斜线命令@vscode聊天参与者/运行命令使您能够搜索并执行核心 VS Code 命令。例如,切换开发者工具:

在 Copilot Chat 中使用 /runCommand 斜体字命令切换开发者工具。

您可以启用此新斜线命令github.copilot.chat.runCommand.enabled输入:.

Python

改进了使用python-environment-tools的Python发现机制

在最近的发布中,我们宣布了Python环境工具,它重新设计了以性能为重点的Python发现基础设施。这种方法减少了执行Python二进制文件以获取信息的需要,从而提高了性能。

从这个版本开始,我们将作为实验的一部分推出此增强功能。如果您有兴趣尝试,请设置"python.locator"“本地”在你的用户settings.json 并重新加载你的 VS Code Windows。访问 python-environment-tools 仓库 以了解更多关于此功能、正在进行的工作以及提供反馈的信息。

显示原生REPL的执行状态

实验性的原生 REPL ("python.REPL.sendToNativeREPL": true) 现在根据执行结果显示成功/失败界面,类似于 Jupyter cell 中的界面。此外,我们进行了改进,不再在没有输出的单元格中显示空行。

在源代码中内联变量值

Python Debugger 扩展引入了 Inline Values 功能,以增强您的 Python 调试体验。使用 Inline Values,您可以在调试会话期间在编辑器中查看变量的值,紧挨着相应的代码行。这有助于您快速了解程序的状态,而无需悬停在变量上或在 Run and Debug 视图的 Variables 部分中进行检查。

显示Python内联变量。

要启用此功能,请设置配置值debugpy显示Python内联值在您的用户设置中。

注意:此功能目前仍在探索阶段,并且仍在进行改进。请在vscode-python-debugger 仓库中提供您可能有的任何反馈!

改进的调试欢迎视图

调试欢迎视图现在包括一个按钮,用于在编辑器中打开Python文件时快速访问自动Python配置。

GitHub 拉取请求和问题

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

  • 使用撤销按钮在合并的PRs的拉取请求描述中撤销拉取请求
  • 分支已被删除的 PR 现在可以在 Pull Requests 视图中查看。
  • 即使你有多个PR检出,在GitHub.com上打开拉取请求操作也会显示。

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

扩展编写

网络代理的基本身份验证

使用这些扩展对不起,我无法查看或翻译网页内容。如果你能提供具体的文本内容,我可以帮你进行翻译。Node.js 模块现在可以使用需要基本身份验证的网络代理。

预览功能

真正的内联差异

在这一版本中,我们引入了diffEditor.experimental.useTrueInlineView设置(默认为关闭)。当您启用此设置并使用内联视图时,单行更改将内联显示:

在差异编辑器中实现真正的内联视图。

这是在不启用此实验标志时内联视图的外观:

默认的差异编辑器内联视图。

此功能为实验性,未来可能会有变化。

VS Code 原生的 PowerShell 智能感知

VS Code 内置的 PowerShell 代码补全实验性功能在此次发布中有一些显著的改进。要在 Windows 或 macOS 上启用此功能:

"terminal.integrated.suggest.enabled"

除了可靠性更高的特点外,还进行了许多其他改进,如下所示。

完成结果不会被截断

完成现在显示准确地显示输入的内容,而不是截断版本。例如,当搜索目录名称时,现在已包含并正确突出显示。

之前:

在“src”的完成显示“src”之前

之后:

完成“src”后会显示“.\src”

优化的目录导航完成建议

目录名称现在包括一个尾随的输入:输入:/,当完成时,刷新新目录的完成。

配置回车行为

新的终端.集成.建议.按回车键执行设置使您能够配置进入行为在满足某些条件时运行命令。以下值可用:

  • "总是": 始终运行在进入输入:.
  • "精确匹配"运行进入当输入完整的建议时。
  • "精确匹配忽略扩展名"(默认):运行于进入当输入完整的建议或输入文件而不包括其扩展名时。
  • "从不"(旧行为):从不运行在进入输入:.

这个更改特别重要,因为它不会破坏现有的肌肉记忆,通常启用该功能后键入的键序列与未启用时相同。一个有用的场景是运行cd ..在进行此更改之前,您需要输入cd ..<回车><回车>但是现在它是一个进入,多亏了这个新设置。

改进的文件完成

文件补全现在按文件名长度升序、文件名字母顺序和文件扩展名字母顺序排序。文件补全作为命令(而不是参数)现在也会根据其文件扩展名和当前操作系统获得提升。例如,.ps1.批处理文件,和输入: .cmd在Windows上运行时,文件会被提升,这使得它们在列表中显示得更高。

结果现在按特定平台的扩展进行排序

这些更改不仅提高了顶级项目的相关性,还通过使行为更接近原生的 PowerShell 按键完成来帮助肌肉记忆。例如,在 Windows 上的 VS Code 代码库中经常运行的命令是./scripts/code.bat有了这些改变,./sc完成并运行./scripts/code.bat输入:.

全局完成缓存

全局命令完成在会话之间缓存,这显著提高了 shell 启动性能。这也修复了一个问题,即重新连接的终端无法正确完成。目前,可以通过运行 来清除和刷新这些。终端:清除建议缓存命令。在Intel i7-12700KF上测量,这将激活shell integration所需的时间从约600毫秒减少到约50毫秒。

PowerShell 内置终端自动完成

我们现在为内置完成发货吉特这些基于那些 posh-git项目,但有一些通用和 VS Code 特定的改进。以下是 completions 动作的一个示例:

其他的一些改进包括:

  • 别名在右侧显示其展开状态:

    别名在右侧显示其展开状态

  • 分支、标签、暂存区和远程的Git特定图标:

    分支和标签旁边有各自的图标在补全旁边

  • 右侧的子命令描述:

    像 'checkout' 这样的子命令在右侧显示其描述

我们也为内置完成提供传输代码代码内幕尽管这些是非常基本的,将在未来的版本中改进。

代码现在显示代码中所有内容的基本完成 --help

这些完成可能会与其他 PowerShell 模块的完成冲突。您可以使用以下设置禁用它们:

"terminal.integrated.suggest.builtinCompletions": {
  "pwshCode": false,
  "pwshGit": false
}

TypeScript 5.6 支持

此版本包括对即将推出的 TypeScript 5.6 版本的支持。请查看 TypeScript 5.6 迭代计划 以了解此版本包含的内容。

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

提议的API

快速输入按钮位置显示输入右侧的按钮

在这个里程碑上,我们提出了一个API快速输入按钮这使得扩展可以自由选择按钮的渲染位置。选项有:

  • 标题这将按钮显示在快速选择的标题栏中。这是默认行为,并保持现有按钮的行为。
  • 内联这将按钮渲染到输入框的右侧。如果你不打算将标题栏用于任何其他用途,只想显示按钮,这很有用。

此功能已被采用在Git扩展的创建分支输入框中,您可以使用git.分支随机名称.字典输入:.

查看 vscode#221397 以获取更多信息和更新。

测试增强

将代码关联到测试

我们正在开发一个API,使扩展能够将代码与测试关联,反之亦然。这使用户能够在两者之间跳转,并使诸如在光标处运行测试等操作在实现代码中也能正常工作。我们预计随着API的发展,将构建更多的体验。

查看 vscode#126932 以获取更多信息和更新。

测试失败中的调用堆栈

我们正在开发一个API,可以将丰富的调用堆栈与单元测试失败关联起来。这使用户能够一目了然地看到导致失败的代码。

查看 vscode#214488 以获取更多信息和更新。

可归因测试覆盖

我们正在开发一个按测试区分测试覆盖的API。这使用户能够看到哪些测试运行了哪些代码,过滤器既可以在编辑器中显示的覆盖情况,也可以在测试覆盖视图中显示的覆盖情况。

查看 vscode#212196 以获取更多信息和更新。

搜索API

在过去的几个月里,我们一直在努力确定三个提议的搜索API:

  • 在文件中查找文本在 VS Code 的文本搜索中查找工作区文件中的文本。
  • 文件搜索提供程序提供文件搜索结果,用于自定义文件方案,这些文件方案无法使用 VS Code 的现有搜索功能进行正确搜索。例如,扩展提供的结果可能在从虚拟文件系统中快速打开时显示出来。
  • 文本搜索提供者喜欢文件搜索提供程序,但仅限于文本搜索结果。例如,当在虚拟文件系统中进行搜索时,扩展提供的结果可能会显示在搜索视图中。

此外,我们正在重新审视工作区.查找文件API,使用 VS Code 的工作区文件搜索来查找文件。新版本应该允许更多的选项,并且应该更清楚地处理排除选项。我们在引入改版版本时,现有的功能签名应该仍然可以使用。

此表说明了不同API之间的关系:

使用API查找 使用 API 提供结果
对于文件 查找文件 文件搜索提供程序
文件中的文本 在文件中查找文本 文本搜索提供者

如果你感兴趣,请点击上面的链接提供反馈!

网站

我们刷新了VS Code 网站的设计,并添加了对浅色和深色主题的支持。

VS Code 网站浅色模式。

网站的新设计默认采用您系统的主题(浅色或深色模式),您也可以通过点击右上角的太阳/月亮图标手动切换。

VS Code 网站深色模式。

我们期待收到您的反馈!请在 vscode-docs 仓库中提交任何功能请求或错误。

工程

将Markdown语言服务器移至单独的仓库

我们将为 VS Code 提供内置 Markdown 智能感知的语言服务器移入 独立的仓库。 之前,这个项目是从 VS Code 主仓库的子文件夹中发布的。 这个改变使得更容易为该项目做出贡献。

该项目仍在npm上以相同名称发布:vscode-markdown-languageserver输入:.

使用ESM for VS Code的进展

在这个里程碑中,我们再次开始工作,将ESM应用于VS Code核心。我们未来的目标是使用ECMAScript模块(ESM)加载并完全放弃AMD。这是一个多里程碑的工作,将现代化整体代码加载和打包。

xterm.js 依赖于 VS Code

终端中的新滚动条需要大量的幕后工作。VS Code 的终端是基于 xterm.js 开源项目构建的,其即将发布的版本也将包含 VS Code 代码库的一小部分,具体是 基础/文件夹。

Electron 30 更新

在这个里程碑中,我们正在向使用我们稳定版本的用户推广Electron 30更新。此更新包含Chromium 124.0.6367.243和Node.js 20.14.0。感谢所有在Insiders版本上自托管并提供早期反馈的每个人。

注意:在生成时打破 API 变更通知.批处理文件输入: .cmd文件:

此次 Electron 更新包含的 Node 版本包含一个重大更改,以应对一个 CVE,如果您执行.批处理文件输入: .cmd Windows 上的文件。您可以遵循 Node.js 在使用 设置的这些文件的指南。选项。

我们已经根据简单的源代码扫描主动通知了可能受影响的扩展,但有可能我们漏掉了您的。如果您受到影响,在启动时您会遇到一个EINVAL异常。.批处理文件输入: .cmd Windows 上的文件。请参考 Node.js 文档 以了解如何处理这些文件。

我们建议扩展作者始终使用我们的Insiders发布版来测试他们的扩展,以提前捕捉这些变化。

重要修复

  • 211199 在终端中启用平滑滚动时,Ctrl+c 不会滚动到底部

谢谢

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

问题跟踪

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

拉取请求

贡献于Visual Studio Code输入:

贡献于vscode-黑色代码格式化器输入:

贡献于vscode-十六进制编辑器输入:

贡献于vscode语言服务器节点输入:

贡献于vscode-markdown-tm-grammar输入:

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

贡献于vscode-textmate输入:

贡献于调试适配器协议输入:

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

贡献于摩纳哥编辑器输入:

贡献于节点请求灯输入:

贡献于Python 环境工具输入: