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

2024年3月(版本1.88)

更新 1.88.1:更新解决了这些问题

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


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

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

无障碍

语音录制声音

我们为语音记录添加了新的无障碍信号声音:

  • 语音记录开始 - 配置为无障碍信号语音记录开始设置
  • 语音记录结束 - 配置与无障碍信号语音记录停止设置

改进了差异编辑器的无障碍功能

如果您使用屏幕阅读器,当差异编辑器成为活动编辑器时,您现在会收到一个通知。您可以使用以下方法禁用此行为无障碍。详细程度。差异编辑器活动设置。

我们还在Diff Editor: Switch Side的帮助对话框中添加了有关信息无障碍帮助对话框

无障碍信号现在可以在差异编辑器的两侧工作。以前,它们仅在修改的一侧可用。

无障碍视图 聊天代码块命令

当您在无障碍视图中检查聊天响应时,现在可以使用聊天视图中可用的代码块命令和快捷键。

这些包括 聊天:插入光标处聊天:插入终端聊天:插入新文件

笔记本单元格的无障碍标签更新

Aria标签用于笔记本单元格现在会更新,以指示单元格当前是否正在执行或待执行。

工作台

浮动Windows中的自定义编辑器支持

我们扩展了打开编辑器的支持,使其可以作为浮动Windows,并定制编辑器,以及一般使用webview API的所有编辑器。这包括markdown预览、浏览器预览和复杂的定制编辑器,如我们的十六进制编辑器

注意: 由于技术限制,将基于 webview 的编辑器在Windows之间移动时,需要重新加载该编辑器的内容。然后,编辑器需要恢复您之前积累的状态。在某些情况下,您的状态可能会被重置,就像您第一次打开编辑器一样。

为打开的编辑器自定义标签

我们现在允许您自定义编辑器标签和“打开编辑器”视图的显示标签。此功能在区分同名文件的编辑器时非常有用。

您可以根据自己的喜好,在以下添加条目来定制这些标签:工作台.编辑器.自定义标签.模式 设置。每个条目应包括一个通配符模式,用于匹配文件路径以及一个定义编辑器标签新名称的模板。此定制仅在文件路径与指定模式匹配时有效。模式是否匹配,取决于它是否被定义为相对文件路径模式。

模板可以包含诸如变量这样的内容${filename}${extname}${dirname},和${dirname(N)}这些动态替换为文件路径中的值。

要启用或禁用这些自定义标签,请使用工作台.编辑器.自定义标签.启用设置。这使您可以在任何时候切换到原始编辑器名称,而无需删除自定义模式。

锁定滚动

您现在可以通过使用 视图:在编辑器之间切换锁定滚动 命令来在所有可见的编辑器之间同步滚动。这意味着当您在其中一个编辑器中滚动时,所有其他编辑器也会以相同的量滚动,使所有内容保持对齐。此功能在需要并排比较文件时非常有用。

如果你想对启用和禁用锁定滚动有更多控制,可以选择只在按住特定快捷键时才激活滚动同步。为该快捷键设置一个键盘快捷键工作台.操作.保持锁定滚动命令,而且您可以在需要时暂时锁定所有编辑器的滚动。

底部活动栏

之前,我们介绍了将活动栏移动到侧边栏顶部的选项。我们现在允许您也将活动栏移动到底部。要实现这一点,请更改工作台.活动栏的位置设置为底部输入:.

我们还改进了活动栏的外观和感觉,当它位于顶部时,以确保它能很好地融入其他界面元素。

三个截图,显示活动栏的不同位置:在左侧、在顶部和在底部

搜索编辑器单击行为

您现在可以配置搜索.搜索编辑器.单击行为设置以确定单击搜索编辑器条目时发生的事情。目前,该设置仅支持打开“查看定义”。

快速搜索改进

粘性文件路径

在快速搜索中,我们使文件名分隔符变得粘性,以更清楚地表明搜索结果与哪个文件相关。当您在一个文件中有许多搜索词的出现时,这将非常有用。

文件路径分隔按钮

当您将鼠标悬停在某个文件的结果上,或使用箭头键向下移动到一个结果时,文件路径分隔符的按钮(例如,打开文件)也会显示。

快速选择分隔符导航键绑定

我们收到反馈,能够在快速选择中导航到分隔符会很不错。在这一版本中,我们添加了一个快捷键来实现这一点。在Windows和Linux上,你可以使用Alt+上/下,而在macOS上它是Cmd+上/下在这个示例视频中,你可以看到活动项目在以下项目之间移动:

  • 最近使用其他命令命令面板中的分隔符
  • 在快速搜索中的文件路径分隔符之间

快速选择禁用复选框项目

在这一迭代中,我们使快速选择在显示已禁用的项目时更加清晰。这可以在“管理受信任的扩展”快速选择中找到示例,该快速选择可以访问您登录的任何帐户。

管理受信任扩展的快速选择,其中一些项目已禁用

扩展更新改进

重启扩展

当扩展更新时,现在你可以重新启动扩展,而不是必须重新加载Windows。

重启扩展而不是重新加载Windows

注意: 当你连接到远程服务器如WSL或SSH或开发容器时,你仍然需要重新加载Windows以更新扩展。

更新 VS Code 更新的扩展

当你有扩展自动更新已启用后,VS Code 现在会更新与可用的较新版本 VS Code 兼容的扩展。如果扩展的较新版本与当前版本的 VS Code 不兼容,则只有在您更新 VS Code 后,较新版本的扩展才会启用。

跳转到评论回复

在评论视图中,评论线程的上下文菜单现在在允许回复的评论线程中包含一个“回复”操作。这使您能够快速跳转到回复输入框并开始输入回复。

评论视图上下文菜单带有回复操作

编辑器

迷你地图部分标题

小地图现在可以识别和渲染由折叠标记定义的部分,例如//#区域在 TypeScript 中,或使用 的注释马克:这使您能够快速浏览和导航大型文件。

显示在小地图中由编辑器定义的折叠标记区域的截图

重构预览快捷键

我们更新了重命名符号重构(F2)的预览快捷键,以与其他上下文中的代码行动等预览重构保持一致。现在,您可以通过使用⌘Enter(Windows, Linux Ctrl+Enter来预览编辑(以前是输入:Shift + Enter)。

当悬停在代码操作上时,⌘Enter(Windows, LinuxCtrl+Enter也会在工作区中打开代码重构预览面板。

Diff 编辑器 暂存/撤销选择按钮

现在,差异编辑器有一个单独的 gutter 用于 暂存撤销 控制。这些操作使您可以暂存或撤销更改的代码块。

如果您对某些更改进行了文本选择,则这些按钮可以将选定的更改(选择范围内所有更改的字符)暂存或撤销。

显示差异编辑器中 gutter 按钮以暂存或撤销更改的视频

您可以通过设置隐藏差异编辑器的 gutterdiffEditor.renderGutterMenu假的输入:.

重命名建议行为

我们改进了使用重命名建议的流程,使其与快速选择的流程一致。当您从列表中选择一个重命名建议时,输入值现在会相应更新,使您可以进一步修改建议。

重命名控件的视频,该控件将输入更新为聚焦的重命名建议

源代码管理

即将到来的更改文件装饰品

为了帮助避免从远程合并/重新应用更改时的潜在冲突,我们现在显示所有有入站更改并已获取但尚未合并/重新应用的文件的文件装饰。要利用此功能,您应该具备git.自动获取git.装饰.启用设置已启用。

源代码管理在资源管理器视图和编辑器标签中的入站更改文件装饰符

主题: GitHub Sharp (预览于 vscode.dev)

终端

在调试终端中进行壳集成

为了增强用户和扩展的功能,壳集成 现在在启动调试时自动启用终端。

运行最近命令的改进

通过外壳集成实现的运行最近的命令 (⌃⌥R (Windows, Linux Ctrl+Alt+R)) 现在会滚动到并显示命令上次运行的时间(如果可能)。运行命令或取消快速选择会将终端恢复到之前的状态。

主题: Sapphire (预览于 vscode.dev)

打开检测到的链接命令 (⇧⌘O (Windows, Linux Ctrl+Shift+O)) 现在在编辑器中预览链接结果,并在终端中突出显示链接源。

此外,现在列表中去除了重复链接,并且所有链接都以一致的格式呈现。

当3个 yarn.lock 链接打印相同的行和列号时,它们将全部合并为一个检测链接

单词链接终端.集成.单词分隔符设置并在文件/文件夹/URI 无法找到时作为备用。激活时,这些链接现在包括额外的上下文信息,以添加行和列信息用于搜索。

注意屏幕截图中的链接终端链接解析被选中,但生成的搜索还包括链接后的行号。

激活“terminalLinkParsing”链接,并跟随“line 24”将包括第24行号在搜索中

以下链接格式现在在终端中被检测到,即使路径包含空格:

  •  文件 路径:行:列

终端粘性滚动透明度支持

终端中的粘性滚动 现在支持透明度。主题可以通过配置 终端粘性滚动背景主题颜色设置为透明值,或者在你的配置中指定覆盖。settings.json例如:

{
  "workbench.colorCustomizations": {
    "[默认现代黑暗模式]": {
      "终端粘性滚动背景": "#181818c0"
    }
  }
}

这导致了一个透明的粘性滚动背景,允许背后的文本透过:

粘性滚动背景现在可以是透明的,允许背后的文本透过显示。

测试

测试覆盖

在这一迭代中,我们已经完成了测试覆盖API的最终版本,为VS Code带来了原生的覆盖支持。如果你的测试系统支持它,你可以通过使用新的带覆盖运行按钮来获取覆盖信息:

截图显示在测试资源管理器视图中运行并覆盖按钮

类似地,对于带有覆盖信息的运行也有新的键绑定,例如 Ctrl+; Ctrl+Shift+A 运行所有带有覆盖信息的测试,以及 Ctrl+; Ctrl+Shift+L 运行你上次的测试集带有覆盖信息。

默认情况下,覆盖信息显示在线号的覆盖层上,但您可以切换内联覆盖以查看源文件的完整详细信息:

截图显示了测试覆盖视图在测试资源管理器视图中和编辑器中的颜色覆盖。

主题: Codesong (预览于 vscode.dev)

使用测试覆盖需要您的扩展实现新的API。一些扩展,例如Java的测试运行器node:test运行器已经支持它。了解更多关于团队在十二月一月更新中的Java测试覆盖。

扩展程序作者可以在测试API文档中找到有关测试覆盖API的更多详细信息。

测试消息中的颜色代码支持

我们现在解析终端颜色代码,将文本测试消息(例如测试失败时显示的消息)进行彩色化显示,而不是显示原始的“不可打印”数据代码。

语言

TypeScript 5.4

VS Code 现在包含 TypeScript 5.4。这个重要的更新为类型检查和 Intellisense 带来了新的改进,并修复了一些错误。请参阅TypeScript 5.4 发布博客文章了解更多信息。

当你将图像或文件拖入或粘贴到一个Markdown文件中时,VS Code会自动插入Markdown图像或链接语法。现在,当你在代码块和其他不支持Markdown语法的上下文中插入时,我们也会智能地禁用这种行为:

您始终可以使用下拉/粘贴控件切换回插入Markdown语法。您可以使用以下内容来配置此行为markdown.编辑器.拖放.启用markdown.editor.filePaste.enabled设置。

笔记本电脑

笔记本输出中的键盘快捷键

我们现在支持一些标准的笔记本输出键盘快捷键:

  • 输出可以使用键盘选择并复制,分别的快捷键是Ctrl+ACtrl+C
  • 可滚动的输出可以通过键盘使用键位进行滚动。
  • 使用键盘可以使用 Ctrl+HomeCtrl+End 绑定键来实现滚动到可滚动输出的顶部和底部(在macOS上是 Cmd+UpCmd+Down)。
  • 从当前选择点到输出顶部或底部的选择,可以通过键盘使用 Ctrl+Shift+UpCtrl+Shift+End 键绑定分别实现(在macOS上为 Shift+Cmd+UpShift+Cmd+Down)。

单元格错误诊断

扩展现在可以为失败的单元格提供错误详细信息,以便错误诊断显示在单元格内。当聚焦在单元格容器上时,notebook.cell.openFailureActions (⌘. (Windows, Linux Ctrl+.)) 跳转到该错误的快速操作菜单。诊断仅在有语言模型提供快速操作时显示。

运行章节中的单元格

为了更容易地运行 Notebook 中的相关单元格,现在可以使用 在节中运行单元格 动作来运行由 markdown 部分标题分组在一起的单元格。此动作可在 Notebook 的大纲视图和粘性滚动元素上使用。

在Sticky Scroll元素中,右键单击您选择的标题,并通过上下文菜单中的操作运行该部分。在大纲视图中,选择悬停或选择时出现的工具栏图标,然后通过提供的操作运行单个单元格或单元格部分。

大纲视图中的筛选支持

现在,您可以在笔记本大纲视图中使用过滤器,这些过滤器可以控制Markdown标题、代码单元格和代码单元格符号的包含。过滤器对应于以下设置:

  • notebook.outline.showMarkdownHeadersOnly
  • notebook.大纲.显示代码单元格
  • notebook.大纲.显示代码单元格符号

提示在关闭时保存交互Windows

通过启用交互Windows提示在关闭时保存设置中,当交互Windows关闭时,系统会提示您保存内容,以确保您不会丢失任何工作。目前唯一支持的文件格式是.ipynb输入:.

远程开发

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

亮点包括:

  • 对具有延长支持的发行版的备用服务器下载
  • 基于URI查询字符串的端口转发
  • Dev Containers 扩展自动启动 Docker
  • 通过组策略限制对开发隧道和端口转发的访问

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

对扩展的贡献

VS Code 语音

延迟激活

VS Code语音扩展现在仅在VS Code中请求语音转文字服务时激活。这确保了扩展不会对扩展主机的启动时间产生负面影响。

使用显示语言作为默认语音语言

默认情况下,VS Code语音扩展现在使用VS Code的显示语言作为语音语言,并选择相应的模型(如果该语言受支持)。

对于无障碍语音语言设置自动是新的默认设置。

GitHub Copilot

内联聊天改进

即时聊天现在以浮动控制开始,使其更加轻量。在第一次请求之后,控制会扩展以占用更多空间。我们还调整了渲染,使其与其他聊天体验(如聊天视图或快速聊天)更加一致。

内联聊天作为内容小部件,漂浮在编辑器文本上 主题: GitHub 轻色色盲(测试版)

我们重新调整了重跑和反馈控制,并将查看差异的切换控制按钮与接受和拒绝按钮并列放置,使其更加显眼。

Copilot内联聊天的截图,显示了重新定位的控件。 主题: GitHub 轻色色盲(测试版)

笔记本内核状态作为上下文

当你在一个笔记本中时,内核状态(例如,变量和可用的包)现在会自动作为上下文包含在内联聊天中。这使 Copilot 能够利用笔记本的当前状态来提供更相关的补全。

主题: GitHub Dark

提交信息生成改进

为了提高生成的提交信息的质量,我们现在还包括了仓库中最近10个提交的提交信息,以及当前用户最近10个提交的提交信息作为额外的上下文。

工作区创建改进

@工作区 /新建命令现在提供来自 GitHub 仓库的精选示例项目,当检测到与聊天提示的匹配时,作为建议提供。

聊天视图与@workspace /new,提供一个链接到一个示例项目

@工作区 /新建命令也得到了增强,可以更有效地管理上下文和历史记录。这使您可以通过提出后续问题来完善建议的工作区结构和文件内容。例如,“使用 TypeScript 而不是 JavaScript”或“也添加 bootstrap”。

@terminal /解释斜线命令

一个新的@终端 /解释斜线命令可用,该命令优化用于解释命令或错误。没有/解释@终端 优化以建议修复。此斜线命令用于 使用 Copilot 解释 快速修复或 解释选择 动作。

使用解释使用 Copilot 快速修复将询问 Copilot “@terminal /explain #terminalLastCommand”

预览:终端内嵌聊天

此版本中提供了终端内内联聊天的预览,这使得直接在终端中便捷地访问 Copilot 的功能成为可能。

您可以启用终端内联聊天终端.集成.实验性内联聊天 设置。要调用终端中的内联聊天,请使用 ⌘I (Windows, Linux Ctrl+I 键绑定。

打开终端内联聊天将打开并聚焦一个类似于编辑器内联聊天的输入框

终端内联聊天使用@终端聊天参与者,有关于集成终端的外壳及其内容的上下文。

你可以问复杂的问题,例如 "列出src目录中最大的前5个文件"

一旦命令被建议,使用⌘Enter(Windows, Linux Ctrl+Enter在终端中运行命令,或使用⌥Enter(Windows, Linux Alt+Enter)将命令插入终端。命令也可以在运行之前直接在 Copilot 的响应中编辑(目前Ctrl+downTabTab在 Windows & Linux,Cmd+downTabTab在 macOS)。

复杂的查询是特定于操作系统和外壳的

关于认证流程的清晰度

对身份验证的清晰度非常重要。我们需要明确我们如何进行身份验证以及我们要求什么。如果你在 VS Code 中打开一个私有仓库,并且我们没有为此场景提供正确的身份验证,我们会显示一个身份验证对话框。对话框会解释为什么需要身份验证,并且有一个了解更多按钮,以了解这些要求的更多信息。

模态Windows的截图,要求与GitHub进行身份验证,并包含一个“了解更多”按钮。

点击了解更多按钮会带你到我们的认证要求文档

变量引用

在聊天响应中的已使用参考文献部分提供了所使用上下文的信息。之前,这一部分只显示隐式拉入的上下文。现在,它也显示你在聊天提示中明确提到的变量,例如#文件#编辑器如果一个变量在“已使用引用”中缺失,可能是因为它对于语言模型的上下文Windows来说太大而被忽略了。

聊天响应的截图,显示了“#file”变量在“使用引用”部分

二级聊天提交操作

在聊天视图中,聊天提交按钮现在有一个下拉菜单,可以轻松访问更多操作。

  • 发送到 @workspace 将你的查询提交到 @工作区聊天参与者,这有助于关于你工作空间内容的问题
  • 发送到新聊天开始一个全新的空聊天,然后提交查询

聊天提交下拉选项的截图

使用时的范围选择Copilot:解释这个

当你使用/解释在没有选择你的活动编辑器,并且有多个兴趣范围时,我们增加了提示支持,以明确要解释的符号或块范围。

当 /explain 的作用域不明确时,作用域选择快速选择的截图

此行为目前为自愿选择,处于 之后。github.copilot.chat.scopeSelection设置。

Python

改进了Flask和Django的调试配置选择

为Flask和Django应用创建启动配置变得更加容易了!在创建时,已经对检测工作区中的可能启动文件进行了改进。launch.json为你的网页应用。

对于Django,Python调试器扩展查找管理.pyapp.py在你的工作区中根目录或其下一级子目录中的文件。对于Flask,该扩展查找wsgi.pyapp.py,或init.py包含Flask应用程序声明的文件(例如,app = Flask())。

如果在项目中找不到这些文件,下拉菜单会显示一个默认选项,对应于该项目类型,尽管该文件可能不存在。

Hatch 环境发现

Hatch 环境现在默认情况下会被发现和激活,类似于其他常见环境,例如 Venv、Conda 和 Poetry。此外,在没有注册明确的环境标识符的情况下,对于 Hatch,该扩展能够从环境定位器中确定环境类型(Hatch)。

自动为pipenv、pyenv和Poetry项目选择环境

如果您的工作区包含一个pipenv、pyenv或Poetry环境,现在会自动为您选择相应的环境。以前,该扩展能够正确发现这些环境,但选择默认的全局解释器,这需要您手动选择适当的工作区环境。

现在,Python 扩展根据环境的存在以及任何相应的配置文件来推断激活的环境。例如,在 pyenv 的情况下,扩展会查看.python-version文件自动选择适用于工作区的适当解释器。

报告问题命令改进

现在 PythonPython Debugger 扩展使您更容易向我们的仓库报告问题!如果您使用 Report Issue 命令提交问题(工作台.操作.打开问题报告器),大部分繁重的工作已经完成,您只需提供一些额外的信息,以便我们的团队能够高效地处理您遇到的问题。

要使用 帮助:报告问题 命令提交 @vscode-python@vscode-python-debugger 的问题,请从扩展下拉菜单中选择 PythonPython 调试器 分别。

GitHub 拉取请求

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

  • 过时的评论在评论视图中显示方式与当前评论不同。
  • 新的自动值为github拉取请求创建默认基础分支使用上游的默认分支作为分叉仓库的基分支。
  • 评论视图中的评论线程具有内联操作(解决/未解决和“与HEAD的差异评论”用于过时的评论)和上下文菜单操作。

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

朱庇特

单元格执行分析改进

通过最新的 Pylance 预发布版本,我们对 Jupyter 单元格的依赖分析有了更好的理解。它现在可以理解模块导入,这在你有一个单元格导入在之前单元格中定义的模块时特别有用。

要启用此功能,请在 VS Code Insiders 中安装最新的 Pylance 预发布版本,并启用 jupyter.executionAnalysis.enablednotebook.合并运行按钮设置。

扩展编写

使用扩展问题报告命令进行扩展错误报告

在最后的迭代中,我们确定了扩展通过VS Code的Issue Reporter提交到GitHub时如何贡献额外数据或模板的方法。扩展可以贡献一个命令,该命令可以通过帮助:报告问题...命令访问。选择他们的扩展会运行他们贡献的命令。请查看我们的问题报告文档/发行说明,以了解如何与您的扩展配合使用此功能!

此外,所有已安装的扩展都可以通过快速打开快速报告。通过输入问题在快速打开(⌘P(Windows, Linux Ctrl+P)),您可以快速选择或搜索已安装的扩展以进行报告。

某些扩展将开始使用新的问题报告流程,并且将不再需要定制报告问题...直接贡献到命令面板的命令。

预览功能

在终端中重新调整重叠字形的大小

一个新的设置终端.集成.重缩重叠的字形可用,这将重新缩放重叠的字形以适应后续单元格。这是为了覆盖模糊宽度字符,这些字符的字体字形可能与支持的pty/unicode版本所认为的不匹配。例如,在大多数字体中,罗马数字unicode字符U+2160+) 通常占据多个单元格,因此启用此设置时,它们将沿水平方向重新缩放。

不重新缩放:

在Ⅷ和Ⅻ的字形依赖于字体时,总是会重叠后续的单元格

重新缩放:

在某些字体中,Ⅷ和Ⅻ的字形被水平重新缩放以适应一个单元格

缩放规则仍在调整中,我们考虑在未来将其默认启用。如果您尝试此功能并发现不应缩放的角色,请创建一个议题

本地工作区扩展

我们很高兴地介绍这个新预览功能,它允许您直接在工作区中打包扩展。该功能旨在满足您特定的工作区需求,并提供更个性化的开发体验。

要使用此功能,您需要将扩展打包在.vscode/扩展 工作区中的文件夹。VS Code 然后在 工作区推荐 部分的扩展视图中显示此扩展,用户可以从那里安装它。VS Code 只为该工作区安装此扩展。在安装和运行此扩展之前,它还要求用户信任工作区。

例如,考虑vscode自托管测试提供者 VS Code 仓库中的扩展。此扩展插入测试功能,使贡献者能够在工作区中直接查看和运行测试。以下截图显示了 vscode自托管测试提供者在扩展视图的工作区建议部分扩展,并能够安装它。

本地工作区扩展

此功能可在Insiders版本中预览扩展实验性支持工作区扩展尝试一下,并通过在VS Code 仓库中创建问题来告诉我们您的反馈。

提议的API

终端外壳集成API

一个新的提议 API 现在可用,该 API 可以访问由 shell 集成激活的终端提供的某些信息。有了这个 API,可以监听终端中执行命令的输入数据和退出代码。它还引入了一种更可靠的方法来执行等待提示符出现的命令,然后再发送命令,这有助于解决在各种 shell 设置中可能出现的一些冲突/竞争条件。

这是一个使用示例终端. shell集成. 执行命令提议:

// Execute a command in a terminal immediately after being created
const myTerm = window.createTerminal();
window.onDidActivateTerminalShellIntegration(async ({ terminal, shellIntegration }) => {
  if (terminal === myTerm) {
    const command = shellIntegration.executeCommand('echo "Hello world"');
    const code = await command.exitCode;
    console.log(`Command exited with code ${code}`);
  }
}));

// Fallback to sendText if there is no shell integration within 3 seconds of launching
setTimeout(() => {
  if (!myTerm.shellIntegration) {
    myTerm.sendText('echo "Hello world"');
    // Without shell integration, we can't know when the command has finished or what the
    // exit code was.
  }
}, 3000);

这是一个命令数据流的监听示例:

// Create a terminal and log all data via console.log
const myTerm = window.createTerminal();
window.onDidStartTerminalShellExecution(execution => {
  if (execution.terminal === myTerm) {
    const stream = execution.createDataStream();
    for await (const data of stream) {
      console.log(data);
    }
  }
});

您可以在此处查看新的API

了解更多关于身份验证API的属性

在这一迭代中,我们新增了一个提议的API,使您能够指定一个了解更多物业在认证强制创建新会话选项这个想法是如果你打电话获取会话与一个强制创建新会话在选项中,您可以包括一个统一资源标识符这将呈现给用户,以了解您为何要求进行身份验证。以下是其外观的示例:

模态Windows的截图,要求与GitHub进行身份验证,并包含一个“了解更多”按钮。

以下是代码的实现:

vscode.认证.getSession('github', ['repo'], {
  forceNewSession: {
    detail: l10n.t('为了向您展示更相关的 Copilot Chat 结果,我们需要读取您在 GitHub 上的仓库内容。'),
    learnMore: Uri.parse('https://aka.ms/copilotRepoScope')
  };
});

您可以在此处查看新的API

过时的评论

新的评论线程适用性在评论视图中,将评论线程标记为过时的属性:

评论视图中的过时评论

你可以在这里看到API提案.

评论查看菜单

评论视图/评论线程/上下文提议的菜单允许在评论视图中的评论线程的右键上下文菜单中添加操作。通常内联组也被尊重,因此操作在评论视图中显示为内联。

评论视图中的内联操作示例

工程

Electron 28 更新

在此次迭代中,我们正在向使用我们稳定版本的用户推广Electron 28更新。此更新包含Chromium 120.0.6099.291和Node.js 18.18.2。我们感谢所有在Insiders版本上自托管并提供早期反馈的每个人。

重要修复

  • 204886 在简单文件选择器中,无法打开具有相同名称但在不同路径上的文件

谢谢

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

问题跟踪

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

拉取请求

贡献于Visual Studio Code输入:

贡献于vscode-css-languageservice输入:

贡献于vscode-eslint输入:

贡献于vscode扩展示例输入:

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

贡献于vscode-js调试输入:

贡献于vscode-json-languageservice输入:

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

贡献于vscode-pylint输入:

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

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

贡献于创新更新器输入:

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

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

贡献于节点-pty输入: