现已推出!阅读有关 11 月的新功能和修复的信息。

2022 年 3 月(版本 1.66)

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

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

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


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

如果您想在线阅读这些发行说明,请转到 更新上的 code.visualstudio.com

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

亮点短片: 如果您只有 60 秒,请观看 3 月 VS Code 版本亮点 视频,快速了解新功能。

内部版本: 想尽快试用新功能吗?您可以下载每晚的 内部版本 并尽快试用最新的更新。

辅助功能

该团队努力使 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 的使用。打开本地文件时,条目将保存在本地用户数据文件夹中,打开远程文件时,条目将存储在远程用户数据文件夹中。当没有文件系统可用时(例如,在某些情况下使用 Web 版 VS Code 时),条目将存储到 IndexedDB 中。

设置编辑器

语言筛选器

用户现在可以在设置编辑器搜索框中键入 @lang:languageId,以查看和编辑可为 ID 为 languageId 的语言配置的所有设置。这样,用户可以查看特定于语言的设置,也称为语言替代。

请注意,这些替代设置将一直配置,直到通过单击齿轮图标并重置该设置来显式重置。

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

主题:浅粉色

工作区和文件夹设置保留

设置编辑器中的工作区和文件夹设置现在将保留,直到用户手动重置。此更改有助于解决用户想要显式指定与设置的默认值相等但与用户设置值不同的工作区设置值的情况。以前,用户必须打开工作区设置 JSON 文件来设置此值。

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

主题:浅粉色

主通知按钮

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

Notification where first button is displayed as green primary color

主题:GitHub 深色

编辑器的新上下文键

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

  • 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 设置为 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 现在依赖于一个通用扩展,即 远程存储库,该扩展支持 GitHub 和 Azure Repos 之间的通用工作流程。以前由 GitHub Repositories 扩展公开的所有 API 现在都由远程存储库公开。

提醒同步存储库

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

Reminder to sync your repository

主题:One Monokai

Azure Repos

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

笔记本

在滚动条上查找装饰

笔记本中的查找结果现在将呈现到滚动条中

将焦点移动到交互式窗口

有两个新的命令可以将焦点置于交互式窗口中。

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

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

调试

JavaScript 调试

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

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。这个小更新修复了一些重要的错误

Markdown 允许您在链接文本与链接定义 ID 匹配的情况下使用简写语法创建链接。例如,[我的精美链接],使用 我的精美链接 链接定义(例如,[我的精美链接]: 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 进行代码检查。此扩展利用 语言服务器协议 来提供代码检查支持。

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 来禁用内置的代码检查功能。

Jupyter

本里程碑中,Jupyter 扩展有几项改进。

内核支持

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

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

数据查看器

数据查看器现在支持 DataFrames 和 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 Pull Requests 和 Issues

我们继续致力于 GitHub Pull Requests 和 Issues 扩展,该扩展允许您处理、创建和管理 pull requests 和 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 4.7 迭代计划,了解有关 TypeScript 团队当前工作的更多详细信息。

要开始使用 TypeScript 4.7 nightly 构建,请安装 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 模块的扩展作者,此版本将 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 架构 或作为 TypeScript 类型定义。元模型包含以下信息:指定的请求和通知以及它们的参数类型、返回类型、部分返回类型和注册选项。它还包含所有定义的结构和枚举。

调试适配器协议

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

  • 为了消除 terminatedisconnect 请求的歧义,我们改进了它们的文档。
  • variables 值已记录在 evaluate 请求的 context 参数中。每当在 变量 视图的上下文中调用 evaluate 请求时,VS Code 都会使用此未记录的值。客户端和调试适配器不需要任何更改,因为 context 参数的类型为 string,并且 variables 值仅在文档中提及。

建议的扩展 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

Notebook 文档更改事件

有一个关于 notebook 文档更改事件的新提案:它可以在 notebookDocumentEvents 中找到,其中包含两个事件

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

选项卡 API 形状最终确定

选项卡 API 在下一个里程碑中接近最终确定,并且目前处于形状保持稳定的状态,几乎没有变化。 2022 年 4 月的迭代将是提供有关此 API 的形状和功能的反馈的最后机会。 可以通过 GitHub issues 提供反馈。 选项卡 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

有一个新的 VS 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 在较小的屏幕中,无法调整设置 toc 的大小
  • 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 的贡献