尝试以扩展 VS Code 中的代理模式!

2022 年 3 月 (版本 1.66)

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

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

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


欢迎使用 Visual Studio Code 2022 年 3 月版本。此版本中有许多更新,希望您会喜欢,其中一些主要亮点包括

如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新页面。

观看发布派对:收听 VS Code 团队讨论一些新功能。您可以在我们的 YouTube 频道上找到活动录音

亮点短片:如果您只有 60 秒的时间,请查看VS Code 3 月发布亮点视频,快速了解新功能。

内测版:想尽快尝试新功能?您可以下载每晚的内测版构建,并尽快尝试最新的更新。

辅助功能

团队正在努力使 VS Code 成为最易于访问的编辑器之一。此版本包含多项改进,以帮助提高可用性和辅助功能

工作台

本地历史记录

文件本地历史记录现在可在时间线视图中查看。根据配置的设置,每次保存编辑器时,都会向列表添加一个新条目

每个本地历史记录条目都包含创建条目时文件的完整内容,并且在某些情况下可以提供更多语义信息(例如,指示重构)。

从条目中,您可以

  • 将更改与本地文件或以前的条目进行比较。
  • 还原内容。
  • 删除或重命名条目。

有新的全局命令可用于本地历史记录

  • workbench.action.localHistory.create - 为活动文件创建具有自定义名称的新历史记录条目。
  • workbench.action.localHistory.deleteAll - 删除所有文件的所有历史记录条目。
  • workbench.action.localHistory.restoreViaPicker - 查找要还原的所有文件的历史记录条目。

这些命令没有默认键绑定,但您可以添加自己的键盘快捷方式

还有新的设置可用于本地历史记录

  • workbench.localHistory.enabled - 启用或禁用本地历史记录(默认值:true)。
  • workbench.localHistory.maxFileSize - 创建本地历史记录条目时的文件大小限制(默认值:256 KB)。
  • workbench.localHistory.maxFileEntries - 每个文件的本地历史记录条目限制(默认值:50)。
  • workbench.localHistory.exclude - 用于从本地历史记录中排除某些文件的 glob 模式。
  • workbench.localHistory.mergeWindow - 进一步更改添加到本地文件历史记录中最后一个条目的间隔(秒)(默认值 10s)。

时间线视图工具栏中的新筛选器操作允许您启用或禁用单个提供程序

Timeline filter drop down with Git History unchecked and Local History checked

注意:本地历史记录条目根据您使用 VS Code 的方式存储在不同的位置。打开本地文件时,条目将持久存储在本地用户数据文件夹中;打开远程文件时,它们将存储在远程用户数据文件夹中。当没有文件系统可用时(例如,在某些情况下使用 VS Code for Web 时),条目将存储在 IndexedDB 中。

设置编辑器

语言筛选器

用户现在可以在“设置编辑器”搜索框中键入@lang:languageId,以查看和编辑可以为 ID 为languageId的语言配置的所有设置。通过这种方式,用户可以查看特定于语言的设置,也称为语言覆盖。

请注意,这些覆盖将保持配置状态,直到通过单击齿轮图标并重置设置来显式重置。

下面的短视频将语言筛选器设置为@lang:css以显示所有可能的 CSS 语言覆盖设置。

主题:Light Pink

工作区和文件夹设置保留

“设置编辑器”中的工作区和文件夹设置现在将保留,直到用户手动重置。此更改有助于用户明确指定一个工作区设置值,该值等于设置的默认值,但与用户设置值不同。以前,用户必须打开工作区设置 JSON 文件才能设置此值。

在下面,编辑器选项卡大小在“设置编辑器”工作区选项卡中设置,并自动添加到工作区的settings.json文件中。

主题:Light Pink

主要通知按钮

通知的第一个按钮现在以主要颜色显示,以区别于其他按钮。这遵循与对话框相同的模式。

Notification where first button is displayed as green primary color

主题:GitHub Dark

编辑器的新上下文键

有新的上下文键指示编辑器是否是编辑器组中的第一个或最后一个

  • activeEditorIsFirstInGroup - 活动编辑器是否是其组中的第一个。
  • activeEditorIsLastInGroup - 活动编辑器是否是其组中的最后一个。

这些上下文键可用于使用when 子句有条件地启用键盘快捷方式。

默认二进制编辑器

一个新设置workbench.editor.defaultBinaryEditor允许您规避二进制文件警告,并在检测到二进制文件时自动打开您选择的编辑器类型。您可以从“设置编辑器”中的下拉菜单或通过settings.json中的 IntelliSense 选择默认二进制编辑器 ID。

更流畅的身份验证体验

您可能会注意到 GitHub 和 Microsoft 的身份验证流程更加流畅。

  • 对于 GitHub 身份验证,我们删除了初始的继续页面,因此您的登录体验少了一个步骤。
  • 对于 Microsoft 身份验证,如果您已经使用 Microsoft 登录进行设置同步或其他扩展,我们尝试最大限度地减少您离开 VS Code 登录的次数。

从 CLI 同时安装预发布和普通扩展

VS Code 现在支持从命令行同时安装预发布和普通扩展。例如,以下命令行指令将安装GitHub.vscode-pull-request-github扩展的预发布版本和GitHub.remotehub扩展的发布版本

code --install-extension GitHub.vscode-pull-request-github@prerelease --install-extension GitHub.remotehub

改进了平台特定扩展更新

VS Code 现在支持将平台特定扩展更新到更具体的特定目标平台版本。例如,如果您在 Windows 64 位上安装了 Windows 32 位的 C/C++ 扩展,并且 Marketplace 具有相同版本适用于 Windows 64 位的扩展,VS Code 将自动将扩展更新到 64 位版本。

音频提示改进

新设置audioCues.volume(0-100,默认值为 50)可用于控制音频提示的音量。折叠区域也有更新的音频提示。

侧面板和侧边栏的新名称

两个版本前,我们引入了侧面板。当时,我们取消了将包含终端的底部面板移动到侧面的功能,以支持新的连贯命令。在听取用户反馈后,我们确定此决定破坏了重要的工作流,我们决定恢复该更改。

这使得我们有两个面板,面板和侧面板,它们都可以位于工作台的侧面。为了解决这个问题并更好地反映新侧面板的方向,我们决定更新侧边栏和侧面板的命名。侧边栏现在在 UI 中将被称为主侧边栏,而侧面板现在将被称为辅助侧边栏。

  • 侧边栏 -> 主侧边栏
  • 侧面板 -> 辅助侧边栏

这些名称将在整个编辑器的菜单和命令中反映出来;但是,为了防止破坏现有键绑定,没有更改命令 ID。

Command Palette drop down displaying both primary and secondary focus side bar commands

减少动画模式

当操作系统启用减少动画设置时,工作台现在支持以减少动画的方式渲染。这可以通过workbench.reduceMotion设置进行覆盖或禁用(值包括onoff或默认的auto)。

评论

评论 UI 被GitHub Pull Requests and Issues扩展广泛用于向问题和拉取请求添加评论,但任何扩展都可以采用它。

评论视图的可发现性

当您打开包含评论的文件时,评论视图将显示。这可以通过设置comments.openView来控制。

添加评论的可发现性

现在,当您将鼠标悬停在可以添加评论的行的任何部分时,左侧边栏中会显示 “+” 符号。

评论辅助功能改进

有几项评论辅助功能改进

  • 如果您在可评论范围内,则用于创建评论的命令在当前行添加评论
  • 评论线程的 aria 标签,包括评论数量和线程标签。
  • 转到下一个评论线程命令将焦点集中到评论线程控件。
  • 新的转到上一个评论线程命令。
  • 下一个和上一个命令的键盘快捷方式:Alt+F9Shift+Alt+F9

终端

显示所有查找匹配项

在终端中搜索时,搜索词的所有实例现在都将突出显示。当前选定的匹配项也有一个特定的突出显示,可以单独自定义。

您可以通过以terminal.findMatch为前缀的颜色自定义来微调突出显示颜色的外观。

A yellow border is shown around all matches except for the currently selected one, which has a red border.

滚动条注释

现在,终端的滚动条中会显示注释,以指示缓冲区中的关注点。

例如,查找结果在滚动条中具有相应的注释。

The terminal scroll bar displaying brown annotations for find matches within a file

当启用shell 集成的预览功能时,每个运行的命令在滚动条中都会显示一个注释。

Commands are run and corresponding annotations appear in the scroll bar

命令导航改进

一个鲜为人知但已存在一段时间的功能是快速在终端中导航命令的能力。最初,这是基于何时按下Enter键,但现在当启用 shell 集成时,它将升级以使用 shell 集成知识来更可靠地识别正确的行。此外,在命令之间跳转时现在会显示 UI 反馈。

此功能可通过以下键绑定访问

  • macOS:Cmd+Up/Down
  • Linux/Windows:Ctrl+Up/Down (新增)

可以按住Shift键以在终端中的命令之间进行选择。

复制的文本保留 HTML 样式

要从终端复制富文本,请运行终端:将选择项复制为 HTML命令或使用终端上下文菜单项复制为 HTML

最小对比度默认值更改

terminal.integrated.minimumContrastRatio设置已存在一段时间,并根据背景颜色动态更改终端中的前景色。在此版本中,我们将默认值更改为4.5 (WCAG AA),以确保终端无论主题如何都可访问。如果这最终导致您的颜色出现问题,您可以通过设置"terminal.integrated.minimumContrastRatio": 1来禁用此功能。

源代码管理

源代码管理存储库视图

以前,在打开包含多个存储库的文件夹/工作区时,源代码管理存储库视图中的存储库是按发现顺序排序的。这有问题,因为发现顺序可能会有所不同,存储库似乎是随机排序的。在此里程碑中,存储库在源代码管理存储库视图中始终按名称排序。

编辑器

快速建议作为行内补全

editor.quickSuggestions设置现在接受inline作为配置值。当设置为inline时,快速建议 (IntelliSense) 在您键入时不会显示建议小部件,而是将补全显示为灰色文本。

主题:GitHub Light

用于光标索引的代码段变量

有新的代码段变量:$CURSOR_INDEX$CURSOR_NUMBER。它们评估为相应光标的索引。后者从 1 开始,前者从 0 开始。这些变量的强大之处在于与多个光标结合使用。

例如,下面的代码段将为每个光标添加一个有序列表项

"ordered_list": {
  "scope": "markdown",
  "prefix": "ol",
  "body": [
    "$CURSOR_NUMBER. $0"
  ],
  "description": "Add ordered list"
}

更新了源代码管理装饰器

为了提高源代码管理装饰器的可访问性,我们为修改过的行添加了新的模式,并增加了所有装饰器的对比度。

括号对颜色化

有一个新设置editor.bracketPairColorization.independentColorPoolPerBracketType。当设置为true时,每种括号类型({...}(...))将使用其自己的颜色池进行颜色化。因此,不同类型的嵌套括号将具有相同的颜色。

A screenshot that demonstrates independent color pools turned on

A screenshot that demonstrates independent color pools turned off

改进的语言检测

上次迭代我们添加了设置workbench.editor.historyBasedLanguageDetection来配置是否使用新的语言检测策略,该策略考虑了您打开的文件类型。此设置现在默认启用,并添加了一个新设置workbench.editor.preferHistoryBasedLanguageDetection,以便为此策略的结果赋予更高的优先级。

Web 版 VS Code

拖放文件夹

您现在可以将本地文件和文件夹拖放到在vscode.devinsiders.vscode.dev上打开的浏览器窗口中,该浏览器支持web 文件系统访问 API以访问内容。这在拖放到编辑器区域和文件资源管理器中都有效。

远程仓库

扩展重构

以前,Azure Repos 扩展直接依赖于 GitHub Repositories 扩展。现在,Azure Repos 和 GitHub Repositories 依赖于一个共同的扩展,Remote Repositories,它支持 GitHub 和 Azure Repos 之间的共同工作流。以前由 GitHub Repositories 扩展公开的所有 API 现在都由 Remote Repositories 公开。

同步存储库提醒

当您重新打开一个有未提交更改的存储库时,默认情况下远程存储库不会显示存储库的最新版本。我们现在会显示一个对话框,提示您手动同步存储库,以便您的存储库与 GitHub 或 Azure Repos 上的内容保持同步。您可以使用remoteHub.uncommittedChangesOnEntry设置来控制此对话框。

Reminder to sync your repository

主题:One Monokai

Azure Repos

在此里程碑中,我们正在启用编辑和提交更改到托管在Azure Repos中的存储库的能力。我们还添加了创建、更新和打开 Azure Repos 拉取请求的基本功能。

Notebook

在滚动条上查找装饰

笔记本中的查找结果现在将在滚动条中渲染

将焦点移动到交互式窗口

有两个新命令用于将焦点放置在交互式窗口中。

  • interactive.input.focus - 将焦点移动到交互式窗口中的输入编辑器。
  • interactive.history.focus - 将焦点移动到交互式窗口中的历史记录。

这些命令没有默认键绑定,但您可以添加自己的键盘快捷方式

调试

JavaScript 调试

JavaScript 调试器现在支持收集和可视化堆分析。堆分析允许您查看内存随时间分配的位置和数量。这些已作为调试:获取性能分析命令中的一个选项添加,该命令也可以通过 CALL STACK 视图中的记录⏺按钮访问。

Example of the Flame Chart visualizer showing a memory profile for vscode. One cell is hovered over, showing that 33KB of memory was allocated in "ipc.ts".

语言

CSS 格式化程序

内置 CSS 扩展现在附带一个格式化程序。该格式化程序适用于 CSS、LESS 和 SCSS。它由JS Beautify 库实现,并附带以下设置

  • css.format.enable - 启用/禁用默认 CSS 格式化程序。
  • css.format.newlineBetweenRules - 在规则集之间用空行分隔。
  • css.format.newlineBetweenSelectors - 用换行符分隔选择器。
  • css.format.spaceAroundSelectorSeparator - 确保选择器分隔符“>”、“+”、“~”周围有一个空格字符(例如,a > b)。

lessscss也存在相同的设置。

HTML 中的 JavaScript 语义高亮

我们将 HTML 文件中 JavaScript 源的语义高亮与您在普通.js文件中看到的内容对齐。

这不仅使代码颜色更一致,而且还添加了一些以前缺少的重要语义信息,例如突出显示只读类型。

TypeScript 4.6.3

VS Code 现在捆绑了 TypeScript 4.6.3。此次小幅更新修复了几个重要错误

在链接文本与链接定义 ID 匹配的情况下,Markdown 允许您使用简写语法创建链接。例如,[my fancy link]使用my fancy link链接定义(例如,[my fancy link]: https://example.com)。这些简写链接现在在 VS Code 的编辑器中可点击

在编辑器中,单击这些链接会导航到链接定义。在 Markdown 预览中,链接会导航到链接目标。

reStructuredText 语法

现在有一个用于 reStructuredText (rst) 文件语法高亮的内置扩展。

reStructuredText example showing syntax highlighting

对扩展的贡献

Python

状态栏中解释器显示的变化

Python 扩展为了与其他语言保持一致,将选定的 Python 解释器信息移到状态栏右侧的Python语言状态项旁边。为了清理状态栏,现在仅当当前打开 Python 或settings.json文件时才显示它。

Python interpreter information displayed towards the right of the Status bar

新 Python 文件命令

现在有两种更快的方法来创建空的 Python 文件:通过一个名为Python: 新建 Python 文件的新命令,或通过入门页面上的新建文件...项。

Pylint 扩展

现在有一个新的 Microsoft Pylint 扩展,用于使用 pylint 进行 linting。此扩展利用 语言服务器协议 提供 linting 支持。

Pylint 扩展提供额外的配置,用于调整通过pylint报告的问题的严重级别。

{
    "convention": "Information",
    "error": "Error",
    "fatal": "Error",
    "refactor": "Hint",
    "warning": "Warning",
    "info": "Information",
    "W0611": "Error",
    "unused-import": "Error"
}

注意:如果您还在 Python 扩展中启用了 Pylint,您可能会在问题面板中看到同一问题的两个条目。您可以通过设置"python.linting.pylintEnabled": false来禁用内置的 linting 功能。

Jupyter

此里程碑对Jupyter扩展进行了多项改进。

内核支持

内核启动得到了改进,包括

  • 支持更多conda环境。
  • 支持所有平台上的.env文件。

数据查看器

数据查看器现在支持 DataFrame 和 Series 的命名索引。

Named indexes support in Jupyter extension Data Viewer

新建 Jupyter 笔记本

新建 Jupyter 笔记本现在已整合到新建文件...菜单中。

New File... drop down with option to create a new Jupyter notebook

远程开发

远程开发扩展的工作仍在继续,该扩展允许您使用容器、远程计算机或适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。

1.66 版的功能亮点包括

  • “在开发容器中打开”徽章 - 指导您的仓库用户在自定义开发容器中重新打开。
  • Remote - SSH 扩展现在可以连接到远程 Apple Silicon/M1/ARM64 机器。

您可以在远程开发发布说明中了解新的扩展功能和错误修复。

GitHub 拉取请求和议题

GitHub Pull Requests and Issues扩展的工作仍在继续,该扩展允许您处理、创建和管理拉取请求和问题。查看扩展的0.40.0 版更新日志以查看亮点。

预览功能

终端 Shell 集成

此版本中,Shell 集成继续获得更多改进,主要体现在可靠性和上述终端部分所述的装饰改进方面。

以下是亮点

  • 命令装饰现在显示在滚动条中,类似于编辑器。
  • 命令装饰应该在窗口重新加载(或分离/附加)后恢复。
  • 在 Windows 上调整终端大小时更好地跟踪命令。
  • 改进了终端:清除 VS Code 命令和clear shell 命令的处理。
  • zsh右侧提示支持。
  • 处理更多格式的 bash 的$PROMPT_COMMAND变量。
  • 当未启用 PSReadLine 时支持pwsh
  • 如果存在已知问题或需要特殊处理,即使启用设置,Shell 初始化脚本现在也可以通过取消设置$VSCODE_SHELL_INTEGRATION变量来选择退出 Shell 集成。

TypeScript 4.7 支持

此更新包括对即将发布的 TypeScript 4.7 版本的初步支持。有关 TypeScript 团队目前正在进行的工作的更多详细信息,请参阅TypeScript 4.7 迭代计划

要开始使用 TypeScript 4.7 每晚构建版本,请安装TypeScript Nightly 扩展

文件资源管理器文件嵌套

此次迭代我们继续致力于文件资源管理器中的文件嵌套支持。作为这项工作的一部分,我们完善了移动、重命名和删除嵌套文件的支持,并添加了设置explorer.experimental.fileNesting.operateAsGroup来配置对嵌套父项的编辑是否也应应用于其子项。

此外,我们扩展了文件嵌套的配置语言,以包含更多扩展模式。以前,子模式中的$(capture)将扩展到父模式中*所消耗的文本。现在,模式中额外支持$(basename)$(extname)$(dirname)。这使得诸如* -> $(basename).*.$(dirname)之类的模式可以将所有具有“添加段”的文件嵌套在单个基本文件下。

扩展创作

支持笔记本的文档选择器

我们已经完成了对vscode.DocumentSelector类型的添加。此类型允许您将转到定义等语言功能与特定文档关联,它驱动 UI,并决定是否向相应的提供程序请求结果。我们添加了一个新属性,允许扩展缩小笔记本类型。例如,{ language: 'python', notebookType: 'jupyter-notebook'}面向嵌入在 Jupyter 笔记本中的所有 python 文档。

内联提示可以有编辑

InlayHint类型现在可以有一个可选的、惰性textEdits属性。设置了编辑的内联提示将在双击时应用它们。textEdits应该用于进行使内联提示过时的编辑。例如,双击表示推断类型的提示应该插入该类型注释。

具有自定义语言 ID 的输出通道

在此里程碑中,我们已完成createOutputChannel API,以创建具有自定义语言 ID 的输出通道。这将允许您通过传递语言 ID 来为您的输出通道提供令牌或语法着色以及 CodeLens 功能。

颜色主题种类:高对比度浅色

颜色主题现在可以指定hc-light作为基本主题(uiTheme)。基本主题用于颜色主题未定义的所有颜色。

在 VS Code API 中,ColorTheme.kind现在也可以具有值HighContrastLight

用于颜色贡献的高对比度浅色主题

颜色贡献现在也可以定义高对比度浅色主题(highContrastLight)。如果未指定,将使用light颜色作为默认值。

NODE_MODULE_VERSION 和 Node.js API 更新

对于使用本机节点模块的扩展作者,此版本将 Node.js 版本从14.16.0提升到16.13.0,这可能会根据所使用的 API 抽象层对您的模块编译产生影响。

桌面 远程
NODE_MODULE_VERSION / process.versions.modules 101 93
Node-API / process.versions.napi 8 8

树形拖放 API

通过新完成的TreeDragAndDropController API,扩展贡献的树形视图可以支持拖放。树形视图示例中有一个如何使用此 API 的示例。

调试器扩展创作

支持 CompletionItem.detail

上个月,调试适配器协议向CompletionItem对象添加了一个detail属性。VS Code 现在支持此属性。您将在调试控制台中的建议小部件中看到详细信息。

Debug Console example displaying detail field

语言服务器协议

类型层次结构、内联值和内联提示支持已从建议状态移出,为 3.17 版本做准备。已发布新版本的库。

还有一个第一个版本的 LSP 元模型,以及相应的模式,可以是 JSON schema,也可以是 TypeScript 类型定义。元模型包含以下信息:指定的请求和通知及其参数类型、返回类型、部分返回类型和注册选项。它还包含所有定义的结构和枚举。

调试适配器协议

我们解决了调试适配器协议的几个文档问题

  • 为了消除终止断开连接请求的歧义,我们改进了它们的文档。
  • variables值已在evaluate请求的context参数中进行了文档记录。当在变量视图的上下文中调用evaluate请求时,VS Code 正在使用此未记录的值。客户端和调试适配器无需更改,因为context参数的类型为string,并且variables值仅在文档中提及。

建议的扩展 API

每个里程碑都会带来新的提议 API,扩展作者可以尝试这些 API。一如既往,我们希望得到您的反馈。以下是尝试提议 API 的步骤

  1. 查找您要尝试的提议并将其名称添加到 package.json#enabledApiProposals
  2. 使用最新的vscode-dts并运行vscode-dts dev。它会将相应的d.ts文件下载到您的工作区中。
  3. 您现在可以根据该提议进行编程。

您不能发布使用提议 API 的扩展。下个版本中可能会有破坏性更改,我们绝不希望破坏现有扩展。

InputBox 验证消息严重性

我们的 InputBox API(通过window.showInputBoxwindow.createInputBox)提供了验证用户输入的机制。此次迭代中,我们正在通过建议的 API 扩展它以显示严重性。

例如,如果您想根据用户的输入显示信息消息,您的验证消息可以返回

{
  content: 'this is an info message';
  severity: InputBoxValidationSeverity.Info;
}

它看起来像这样

Input box with 'this is an info message' severity message

此提案的详细信息可在inputBoxSeverity中找到。

笔记本文档更改事件

有一个新的笔记本文档更改事件提案:它作为notebookDocumentEvents提供,包含两个事件

  • vscode.workspace.onDidSaveNotebookDocument在笔记本保存时触发。
  • vscode.workspace.onDidChangeNotebookDocument在笔记本更改时触发。例如,当添加或删除单元格、单元格本身发生更改或元数据更改时。

选项卡 API 形状定稿

tabs API将在下一个里程碑中接近定稿,目前处于形状将保持稳定,几乎没有变化的状态。2022 年 4 月的迭代将是提供有关此 API 形状和功能的反馈的最后机会。可以通过 GitHub 问题提供反馈。tabs API 允许读取打开的选项卡、它们的位置以及关闭它们。

内联补全

我们继续致力于内联补全,为未来几个版本中的定稿做准备。内联补全现在可用于建议代码片段或文本替换(以前只支持文本插入)。

拖放到编辑器

建议的文本编辑器拖放 API 允许扩展处理拖放到文本编辑器中的事件。这些拖放事件可以来自 VS Code 内部——例如将文件从 VS Code 的文件资源管理器拖到文本编辑器中——或者可以通过将文件从操作系统拖到 VS Code 中生成。

要试用新 API,您必须设置"workbench.experimental.editor.dragAndDropIntoEditor.enabled": true。启用此功能后,您可以通过在拖放时按住Shift键来拖放到编辑器中。

我们已包含对拖放到 Markdown 文件时生成链接的实验性支持。您还可以查看 Markdown 扩展的源代码,以获取使用 API 的示例。

已解决/未解决评论

有一个新的提案,用于设置评论线程的已解决或未解决状态。指定状态的评论线程将获得额外的用户体验处理。

工程

Electron 17 更新

在此里程碑中,我们很高兴能在 VS Code 中推出 Electron v17。这是从我们之前采用的 Electron v13 的重大更新,并利用了 Electron 的进程重用架构。在过去的一年里,我们一直在重新实现并逐步推出对我们一些核心服务进行更改,以准备这种新架构,涉及它们与工作台的交互和生命周期

特别感谢所有为此付出努力的人,也感谢社区在 Insiders 上进行自托管并提供反馈,以便我们能够自信地发布此更新。

此更改对 VS Code 用户意味着什么?

切换工作区和重新加载工作区等操作现在应该更快。通过此更新,我们还将 Chromium 版本提升到 98.0.4758.109,Nodejs 版本提升到 16.13.0。

下一步是什么?

我们将继续采用 Electron 版本,遵循其新的发布节奏。我们还在积极致力于将工作台沙盒化,下一步是改进Node.js 托管服务与沙盒化工作台之间的通信通道,这将使我们能够进一步简化新架构。

RPM 包要求列表改进

我们现在将 rpm 包所需的依赖项计算作为我们构建过程的一部分,这得益于Chromium中所做的工作。这使我们能够在采用较新运行时或本机模块时提供最新的依赖项列表。我们还将在即将到来的里程碑中对 debian 包进行类似的更改。

支持内置扩展的带外发布

那些在 Marketplace 中可用的内置扩展现在可以进行带外发布,VS Code 将检测新版本并更新扩展。这将使这些扩展也支持预发布。

文档

VS Code 中的 R

有一个新的Visual Studio Code 中的 R主题,描述了 VS Code 中对R 编程语言的支持,以及R 扩展。R 扩展包括丰富的语言功能,例如代码补全和 linting,以及集成的 R 终端和专用的工作区、数据和绘图查看器。

R Extension for Visual Studio Code details pane

开发容器博客文章

如果您错过了 Burke Holland 最近关于使用开发容器创建易于使用的编程环境的博客文章,请查看“教程问题”。这篇博客文章描述了Laravel如何使用预配置的 Docker 容器为其 PHP 框架教程提供运行时和依赖项。

值得注意的修复

  • 117674 内容换行时调试控制台有时会停止自动滚动
  • 138963 调试启动时,调试控制台无法正常工作
  • 142754 VS Code 终端中的 Emacs 用法已损坏
  • 143513 contributes.configuration 项仅在搜索框为空时才遵守视图中的“order”属性
  • 144458 Glob 模式**/p*错误地匹配/foo/ap
  • 144783 未编辑的设置列表小部件项似乎没有最大宽度
  • 145243 设置目录在较小屏幕上无法调整大小
  • 145572 设置框可以重叠设置

感谢

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

Web 扩展

用于启用作为Web 扩展运行代码的扩展的扩展作者(以下列表是 2022 年 3 月 1 日至 2022 年 3 月 27 日之间)

问题跟踪

对我们问题跟踪的贡献

拉取请求

vscode 的贡献

vscode-css-languageservice 的贡献

vscode-js-debug 的贡献

vscode-languageserver-node 的贡献

vscode-vsce 的贡献

debug-adapter-protocol 的贡献

language-server-protocol 的贡献