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

2022 年 10 月 (版本 1.73)

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

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


欢迎阅读 Visual Studio Code 2022 年 10 月发布版本。此版本包含多项更新,希望您会喜欢,其中一些主要亮点包括:

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

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

辅助功能

新增音频提示

新增音频提示,可帮助您处理任务和终端。

  • 任务完成 - 任务完成时播放声音(由 `audioCues.taskCompleted` 设置控制)。
  • 任务失败 - 任务失败时播放声音(`audioCues.taskFailed`)。
  • 终端快速修复 - 如果当前行有快速修复可用(`audioCues.terminalQuickFix`)。

屏幕阅读器模式下的自动换行

当 VS Code 在屏幕阅读器模式下运行时,自动换行功能已禁用,以防止屏幕阅读器体验下降。此问题已修复,可通过 `editor.wordWrap` 启用。

辅助功能设置标签

现在可以使用 `accessibility` 标签,以提高辅助功能相关设置的可发现性。

**首选项:打开辅助功能设置**命令会打开“设置”编辑器,并应用 `@tag:accessibility` 筛选器。

工作台

在“搜索”视图的结果树视图中右键单击文件夹时,上下文菜单中现在有两个新选项。

  • 选择**将搜索限制到文件夹**会将选定的文件夹路径添加到“要包含的文件”文本框。在此文本框中添加路径会将搜索结果限制为符合列出的路径或模式的结果。

    Using Restrict Search to Folder

    主题:GitHub Dark Dimmed(在 vscode.dev 上预览)

  • 选择**从搜索中排除文件夹**会将选定的文件夹路径添加到“要排除的文件”文本框。在此处添加路径将排除任何符合列出的路径或模式的搜索结果。

    Using Exclude Folder from Search

    主题:GitHub Dark Dimmed(在 vscode.dev 上预览)

命令中心模式快捷方式

命令中心新增顶部区域,便于您查找如何导航到文件、运行命令等。

此简短的模式列表还提供键绑定提示,以便您可以直接跳转到最常用的模式(例如**转到文件**),而无需通过命令中心。

命令中心 UI 默认不显示在标题栏中,但您可以通过**窗口:命令中心**(`window.commandCenter`)设置或右键单击标题栏并勾选**命令中心**来启用它。

设置编辑器工作区信任和策略指示器

由于受限模式工作区或在组织策略下管理而未应用的设置,现在使用指示器显示其状态。即使在受限模式工作区中,用户也可以读取和写入工作区设置(使用 `settings.json` 文件始终可以做到),但在受限工作区中计算要使用的设置的最终值时,不会考虑工作区设置值。

默认浅色主题也进行了一些调整,指示器区域的codicon呈现更清晰,焦点边框更紧凑。

Restricted workspace settings demo showing keyboard navigation and toggling a checkbox even when the setting is restricted

大纲默认折叠状态

新增设置 `outline.collapseItems`,用于控制大纲视图中项目的默认折叠状态。默认值为 `false`,这意味着大纲项目默认展开。将其设置为 `true` 可使大纲项目默认折叠。此设置可按语言设置,也适用于笔记本。

重新排列视图菜单

在 VS Code 菜单栏的“视图”菜单中,最后一组是不断增长的编辑器操作列表。为了平衡菜单的增长和功能,我们将主要与外观相关的项目移到**外观**子菜单下。**自动换行**和**粘滞滚动**选项保留在菜单底部的原始位置。

Updated View menu with Appearance submenu expanded

主题:GitHub Light Default(在 vscode.dev 上预览)

输入 UI 上的圆角

文本输入框、文本区域和下拉菜单现在都显示圆角,以匹配上一版本中应用于按钮的相同样式。

Text input with rounded corners in the Search input box

快速选择列表样式更新

“快速选择”UI 中使用的列表样式已稍作刷新,增加了圆角和左右边距。

列表视图的 codicon 更新

平面列表和树列表视图现在使用更清晰的codicon 来表示列表类型。

次要侧边栏前景色

次要侧边栏通常模仿主侧边栏的主题,但并非所有主题键都能正确识别。次要侧边栏现在正确使用 `"sideBar.foreground"` 主题键。

下面,右侧带有“资源管理器”的主侧边栏和左侧带有“大纲”视图的次侧边栏都使用相同的粉色前景色。

Secondary Side Bar with a pink foreground color matching the Primary Side Bar

主题:GitHub Light Default(在 vscode.dev 上预览)

不再出现“折叠范围过多”通知

出于性能原因,我们将编辑器中显示的折叠范围数量限制为 5000。此限制可通过设置 `editor.foldingMaximumRegions` 进行配置。当超出限制时,VS Code 以前会显示通知。现在状态栏中的语言状态悬停会显示该信息。

Folding limit warning in the language status

默认折叠提供程序

通常,当一种语言有多个折叠提供程序处于活动状态时,VS Code 会尝试合并结果。如果存在冲突范围,则会丢弃一些范围。此外,并非所有折叠提供程序都可以与其他提供程序结合使用。

新的 `editor.defaultFoldingProvider` 设置允许您选择要使用的折叠提供程序。提供程序的名称是贡献它的扩展的扩展 ID(`{publisher}.{extension}`)。

以下示例将(假想)扩展 `aeschli.better-folding` 的折叠提供程序设置为 JavaScript 的默认值。

    "[javascript]": {
            "editor.defaultFoldingRangeProvider": "aeschli.better-folding"
    }

按输出通道设置日志级别

现在,您可以使用**开发人员:设置日志级别...**命令按日志输出通道设置日志级别。这在您只想查看特定日志输出通道的更多日志时非常有用。该命令将首先显示输出通道列表,选择一个后,系统会提示您设置日志级别。

Developer: Set Log Level command dropdown list of output channels

您还可以从命令行按扩展设置日志级别。这在您想查看特定扩展的更多日志时非常有用。例如,以下脚本允许您启动 VS Code,并将 Git 扩展的日志输出通道的默认日志级别设置为 `debug`。

code --log vscode.git:debug

新的 list.collapseAllToFocus 树视图命令

新命令 `list.collapseAllToFocus` 允许您递归折叠当前聚焦的树项目。当您想折叠非根树项目的所有子项时,这非常有用。该命令没有默认键绑定,但您可以通过“键盘快捷方式编辑器”(⌘K ⌘S (Windows、Linux Ctrl+K Ctrl+S))添加自己的键盘快捷方式。

合并编辑器

在这个里程碑中,我们继续完善合并编辑器,此更新包含多项错误修复和一些新功能。

接受两侧并附加冲突

在此版本中,**接受传入**和**接受当前**都可以始终被选中。当同时选择这两个选项时,合并编辑器会附加相应的更改行。

在下面的短视频中,`RelativePattern` 被导入两次,因为两行都被接受。

A screen recording of how both sides are accepted

当冲突可以在字符级别无冲突地解决时,将显示**接受组合**选项,可用于自动解决冲突。

在下面的视频中,两个符号都导入到相同的导入语句中。

A screen recording of how a combination is accepted

针对基线的差异装饰

打开基线视图时,将显示当前聚焦侧与基线之间的差异。此差异视图可用于更好地理解**传入**和**当前**中的更改。

A screen recording of how a diff between incoming, current, and base is shown

差异算法改进

合并编辑器的默认差异算法已更改。新的差异算法针对合并场景进行了优化。在常见情况下,块的数量被最小化,插入位置得到优化。如果新算法导致问题,可以使用设置 `"mergeEditor.diffAlgorithm": "smart"` 切换回以前的算法(默认现在为 `experimental`)。

以下屏幕截图演示了插入的改进。请注意,两种差异都是正确的,但新行为更清晰地突出显示了插入的文本。

旧行为

The old behavior highlights across both the new and existing text

新行为

The new behavior highlights just the new text

新的差异算法目前默认仅在合并编辑器中启用。如果您希望常规差异编辑器也使用新的差异算法,可以设置 `"diffEditor.diffAlgorithm": "experimental"`。

导航冲突

您现在可以单击冲突计数器跳转到下一个未处理的冲突。

Clicking the conflict counter jumps to the next conflict

语言

厌倦了在移动或重命名文件时不小心破坏 Markdown 中的链接或图像?试试新的 `markdown.updateLinksOnFileMove.enabled` 设置!

启用此新设置后,当文件在 VS Code 资源管理器中移动或重命名时,VS Code 会自动更新 Markdown 中的链接和图像。

Markdown file links are updated on file move and rename

您可以使用 `markdown.updateLinksOnFileMove.include` 控制受影响的文件类型。默认情况下,它对所有 Markdown 文件和常见图像文件格式启用。

新的**Markdown:插入工作区文件链接**和**Markdown:插入工作区图片**命令可让您使用文件选择器快速将链接和图像插入到 Markdown 中。

请记住,这些命令只是将链接和图像添加到 Markdown 文件的一种选项。您还可以使用Markdown 路径补全或甚至从 VS Code 的资源管理器中拖放文件来插入链接或图像。

我们内置的 Markdown 验证现在可以提醒您未使用或重复的链接定义。您可以使用 `markdown.validate.enabled` 启用此功能。

An warning about a duplicate link definition

如果您想更精细地控制这些错误,可以使用这些 `markdown.validate` 设置来禁用这些错误(`ignore`)或更改其严重性(`warning`、`error`)。

  • markdown.validate.duplicateLinkDefinitions.enabled
  • markdown.validate.unusedLinkDefinitions.enabled

还有用于删除重复或未使用链接定义的快速修复。

Markdown 中的链接出现高亮显示可让您查看当前文档中光标下的链接在所有哪些地方被使用。

Highlighting all occurrences of a link

请注意,当光标位于文档中的第一个链接上时,所有指向“第一个标题”的链接以及标题本身都会在文档中以及文档右侧的侧边栏中高亮显示。

此功能默认关闭。要启用它,请打开 `markdown.occurrencesHighlight.enabled` 设置。

新的 Razor 语法高亮语法

VS Code 有了一个新的、维护更好的 Razor 语法,用于 Razor 文件的语法高亮显示。新的语法积极维护并修复了旧语法中存在的问题。

Web 版 VS Code

改进的分支创建和保护工作流

当您在 VS Code for the Web 上的 GitHub 或 Azure Repos 仓库中时,提交到受保护的分支现在会通知您当前分支受保护,并提示您创建新分支。

此流程还将遵循以下设置:

  • `git.branchPrefix` 允许您使用配置的前缀预填充分支名称快速输入。
  • `"git.branchProtectionPrompt": "alwaysCommitToNewBranch"` 允许您在尝试提交到受保护分支时跳过提示,直接进入创建新分支的快速输入。

此外,当您创建新分支时,可以通过配置 `"remoteHub.switchToCreatedBranch": "always"` 来绕过是否切换到新创建分支的提示。

上述所有内容也适用于在桌面版 VS Code 上使用GitHub RepositoriesAzure Repos 扩展。

Web 端本地化改进

几个月前,我们开始为 Web 版 VS Code 进行本地化工作。到目前为止,VS Code 核心以及扩展清单中静态声明字符串的扩展都能够进行本地化。此次迭代,我们完成了最后一块拼图:扩展代码中的字符串。这得益于我们上个月提出的本地化 API 的最终确定。

随着我们继续在所有扩展中采用这个新 API,请密切关注更多 VS Code 本地化内容。如果您是扩展作者,可以在 vscode-l10n 仓库中了解有关新 API 的更多信息。

对扩展的贡献

Python

迁移到 isort 扩展

在我们 2022 年 5 月的发布版本中,我们宣布了一个新的 isort 扩展,它与 Python 扩展协同工作以排序导入。例如,当您打开一个文件并且导入不符合 isort 标准时,它将显示一个错误诊断并提供一个代码操作来修复导入顺序。在此版本中,我们正在迁移以使用独立的 isort 扩展,而不是 Python 扩展中内置的 isort 支持,通过自动将其与 Python 扩展一起安装。

Pylance 默认关闭自动导入

自 Pylance 首次实现自动导入以来,我们收到了很多关于当意外接受建议时,自动将导入添加到文件是多么令人困惑,有时甚至令人恼火的反馈。从本版本开始,使用 Pylance 时,包将不再默认自动导入。如果您想为 Python 项目重新启用自动导入,可以通过设置 `"python.analysis.autoImportCompletions": true` 来实现。

Pylint 和 Flake8 扩展推荐

在我们以前版本中,我们宣布了新的 PylintFlake8 扩展,它们通过语言服务器协议 (LSP) 与 Python 扩展协同工作以提供 linting 功能。在此版本中,如果您仍在使用 Python 扩展中内置的 Pylint 和 Flake8 功能,我们将显示通知,提示您安装这些新扩展。

A notification recommending the Pylint extension with a button to install it

远程开发

远程开发扩展允许您使用容器、远程计算机或适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。此版本的亮点包括:

  • 开发容器模板 - 快速基于现有模板创建开发容器。
  • 开发容器功能 - 通过包含预打包的功能(或创建您自己的!)为开发容器添加功能。
  • 无需起始文件夹即可创建新的开发容器。

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

GitHub 拉取请求和议题

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

预览功能

TypeScript 4.9

此更新包括对即将发布的 TypeScript 4.9 版本的支持。有关 TypeScript 团队目前正在进行的工作的更多详细信息,请参阅 TypeScript 4.9 迭代计划。一些编辑器工具亮点:

要开始使用 TypeScript 4.9 每夜构建版本,请安装 TypeScript Nightly 扩展。

设置配置文件

过去几个月我们一直在努力支持 VS Code 中的**设置配置文件**,这是社区最受欢迎的需求之一。此功能可通过 `workbench.experimental.settingsProfiles.enabled` 设置进行预览。欢迎试用并通过在 vscode 仓库中创建问题或在问题 #116740 中评论来提供反馈。

显示同步的配置文件数据

您现在可以在**同步活动(远程)**视图中查看每个配置文件同步的数据。这对于了解每个配置文件同步了哪些数据非常有用。

Sync Activity (Remote) view showing history of Profiles

注意: 此功能目前仅在 VS Code 的Insiders 版本中可用。

扩展创作

为工作区编辑提供元数据

现在,应用于工作区编辑的 API 允许扩展提供元数据,例如将编辑标记为重构。编辑器和重构后自动保存(设置:`files.refactoring.autoSave`)将遵守此额外元数据。

限制 MarkdownString 和 webviews 可以运行的命令

`MarkdownString` 中的命令链接是创建 VS Code 悬停消息或 IntelliSense 详细信息中自定义交互的有用方式。Webview 也可以使用命令链接直接从 webview 触发 VS Code 命令。然而,命令链接也可能很危险,因为它们可以用于执行任何命令,包括许多未考虑安全性设计的命令。因此,命令链接默认禁用,必须由扩展显式启用。

尽管这种“全有或全无”的方法可行,但我们也发现它给扩展作者带来了过多的安全负担。需要使用命令链接的扩展必须验证其渲染内容中仅包含安全命令。这既容易忘记也容易出错。

为了改进这一点,我们引入了新的命令链接启用 API,允许扩展仅启用受信任的命令子集。

对于 `MarkdownString`,`isTrusted` 属性现在接受一个可以执行的命令允许列表(所有其他命令将被阻止)。

const md = new vscode.MarkdownString(
  `A command link: [Open setting](command:workbench.action.openSettings)`
);

// Set trusted commands instead of enabling all commands
md.isTrusted = { enabledCommands: ['workbench.action.openSettings'] };

对于 webview,`WebviewOptions.enableCommandUris` 属性现在可以是启用命令的列表,而不是简单的 true/false。

const options: vscode.WebviewOptions = {
  enableCommandUris: ['workbench.action.openSettings']
};

我们强烈建议所有使用命令链接的扩展都采用这种新的、更严格的 API,以提高安全性。

webview 和 webview 视图的一致源

为了缩短webview 的加载时间,我们现在尝试为给定类型的 webview 的所有实例维护一个一致的源。这主要有两个好处:

  • Webview 可以更好地利用缓存。这意味着本地资源加载速度应该更快。

  • Webview 可以使用本地存储和其他按源分区的 Web API。

    请记住,webview 的所有实例现在都将在同一个源上运行,因此如果它们使用本地存储等 API,请务必根据每个资源对特定于文档的数据/状态进行分区。例如,`localStorage.setItem('scrollPosition', 100)` 会将所有 webview 实例的 `scrollPosition` 设置为 100。如果您想为单个资源设置滚动位置,还需要在键中包含资源 ID:`localStorage.setItem(myDocUri, JSON.stringify({scrollPosition: 100 }))`。

    您也绝不应使用 `localStorage` 或类似 API 来存储关键数据,例如文档内容。虽然 VS Code 会尽最大努力为 webview 维护一致的源,但我们不能保证源不会更改。

    在许多情况下,您应该使用webview 状态 API,因为这些 API 为您处理上述两个问题。

源是为每个扩展和 webview 类型随机生成的。所有 webview 实例都使用相同的源。

目前,普通webviewwebview 视图都尝试维护一致的源。我们计划在下一次迭代中将其应用于自定义编辑器和笔记本 webview。

调试适配器协议

新的 'startDebugging' 反向请求

目前,VS Code 支持多个并发调试会话,但调试适配器协议 (DAP) 仅涵盖单个会话。这意味着以编程方式创建新的调试会话不属于 DAP 的一部分,只能在 DAP 或调试适配器之外完成,通常在包含调试适配器的调试扩展中。因此,多会话功能(例如自动调试子进程)对于非 VS Code DAP 客户端来说不易获得,因为它们通常只使用调试适配器,而不使用 VS Code 特定的调试扩展。

为了改善这种情况,我们在 DAP 中添加了一个新的反向请求 `startDebugging`,允许扩展从调试适配器**内部**创建新的调试会话(与调用方类型相同)。客户端功能 `supportsStartDebuggingRequest` 向调试适配器指示客户端支持 `startDebugging`。

在 10 月版本中,VS Code 已实现 `startDebugging`。

提议的 API

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

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

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

静态笔记本预加载

新的 `notebookPreload` 提案贡献点允许扩展贡献加载到特定类型笔记本中的脚本。

{
    "contributes": {
        "notebookPreload": [
            {
                "type": "jupyter-notebook", // Type of notebook for the preload script
                "entrypoint": "./path/to/preload.js"
            }
        ]
    }
}

此贡献点由 `contribNotebookStaticPreloads` API 提案控制。扩展可以使用预加载在笔记本 JavaScript 环境中加载或定义全局变量。

预加载脚本必须是一个导出 `activate` 函数的 JavaScript 模块。所有预加载都在任何渲染器脚本之前进行评估。

笔记本渲染器可以访问所有输出项

自定义笔记本渲染器现在可以访问其正在渲染的输出项的所有 MIME 数据。如果渲染器确定它无法正确渲染主输出项,此 API 提案允许它回退到渲染其他 MIME 类型之一。

此提案的入口点是新的 `OutputItem._allOutputItems` 属性。该属性是当前输出项包含的所有 MIME 类型的有序列表。列表中的每个项都具有 `{ mime, getItem() }` 的形状。`mime` 是 MIME 类型,例如 `text/html` 或 `image/png`,而 `getItem()` 函数返回一个 Promise,用于该 MIME 类型的 `OutputItem`。

渲染器如何使用这个新的 API:

async function renderOutputItem(outputInfo, element, signal) {
  const didRender = tryRenderMainItem(outputInfo, element);

  if (!didRender) {
    // Fallback to render `text/html`
    const htmlItem = await outputInfo._allOutputItems
      .find(item => item.mime === 'text/html')
      ?.getItem();
    if (htmlItem) {
      // Here we can either render the 'text/html' item ourselves
      // or delegate to another renderer.
      const renderer = await ctx.getRenderer('vscode.builtin-renderer');
      if (renderer) {
        return renderer.renderOutputItem(htmlItem, element, signal);
      }
    }
  }
}

试用此提案,并告诉我们您的想法!

扩展遥测 API

为了进一步推动遥测最佳实践并增强扩展提供的遥测功能,本次迭代引入了提议的 `telemetryLogger` API。此 API 允许扩展提供一个 `TelemetryAppender`,它充当核心发送逻辑(利用 Application Insights 或其他数据记录服务实现)。然后,此 `TelemetryAppender` 用于实例化 `TelemetryLogger`,这是您应该通过其记录遥测的类。

`TelemetryLogger` 提供了一个共享输出通道,用于查看发送的遥测事件、正确的遥测设置检查以及个人身份信息清理。此外,利用 VS Code API 抛出的任何错误都将记录到您的追加器中,以获得更好的错误诊断。

遥测示例中有一个简单示例,您可以在问题 #160090 中提供反馈。

日志输出通道

在上一个里程碑中,我们引入了 `LogOutputChannel` API 提案,用于创建一个仅用于日志记录的输出通道。在此迭代中,我们为其添加了 `logLevel` 属性和 `onDidChangeLogLevel` 事件。`logLevel` 属性表示输出通道的当前日志级别,而 `onDidChangeLogLevel` 事件在输出通道的日志级别更改时触发。

/**
 * A channel for containing log output.
 */
export interface LogOutputChannel extends OutputChannel {

    /**
     * The current log level of the channel.
     * Defaults to application {@link env.logLevel application log level}.
     */
    readonly logLevel: LogLevel;

    /**
     * An {@link Event} which fires when the log level of the channel changes.
     */
    readonly onDidChangeLogLevel: Event<LogLevel>;
    ...
    ...
}

我们还在 `env` 命名空间中添加了 `logLevel` 属性和 `onDidChangeLogLevel` 事件,以表示应用程序的当前日志级别,并且在应用程序的日志级别更改时触发该事件。

export namespace env {
  /**
   * The current log level of the application.
   */
  export const logLevel: LogLevel;

  /**
   * An {@link Event} which fires when the log level of the application changes.
   */
  export const onDidChangeLogLevel: Event<LogLevel>;
}

工程

优化输入延迟

随着 VS Code 体积的增长,按键时的活动量也随之增加。本次迭代我们回溯并彻底调查了在编辑器中打字时究竟发生了什么,以及哪些工作可以在击键在屏幕上渲染后再进行。此次探索的主要成果是:

  • 进行了多项更改,以尽可能多地推迟工作,直到编辑器中的按键在屏幕上呈现之后。对此影响的粗略估计是,当 IntelliSense 未显示时,输入延迟减少约 15%,而当 IntelliSense 正在重新筛选时,减少幅度更大。
  • 我们现在有更精细的技术,用于手动测量输入延迟并在此亚毫秒*级别进行优化。
  • 有一项正在进行中的更改将帮助我们跟踪和报告输入延迟样本。这将为我们提供一些具体数字,以便进行维护和改进。

这仅仅是这项工作的开始,我们还有更多的更改应该在下个版本发布。

* 这些数字很大程度上取决于用于测试的硬件。在高性能硬件上提高 0.5 毫秒,在更普通的硬件上可能最终会变成 2 毫秒。

自动渲染器分析

VS Code 的渲染器进程负责其 UI;它确保光标闪烁、输入能力和保存功能。渲染器进程中的任何性能问题都会对用户可见,并导致糟糕的体验。为了帮助我们识别和修复渲染器进程中的性能问题,我们添加了一个新设置 `application.experimental.rendererProfiling`,可用于自动分析渲染器进程。该设置可以设置为 `on` 以启用分析,设置为 `off` 以禁用分析。启用后,只要渲染器进程“出现压力”,就会对其进行几秒钟的分析,然后分析、匿名化并将配置文件发送出去进行检查。您可以使用窗口日志来跟踪分析过程。

请注意,此功能目前默认关闭,因为我们仍在学习和调整。请试用并告诉我们您的想法。

Windows 11 上下文菜单

在此版本中,VS Code 安装程序默认将**使用 Code - Insiders 打开**上下文菜单条目添加到 Windows 11 上下文菜单中,供 Insiders 用户使用。对于以前在安装 Insiders 时选择启用上下文菜单的用户,在更新到最新 Insiders 版本时,旧样式菜单 `Shift + F10` 中显示的条目现在将被更新的条目替换。对于其他用户,您需要重新安装 Insiders 并在安装向导中选择启用此菜单条目。由于我们在开发菜单条目期间遇到的问题,我们计划将此功能限制在 Insiders 版本中几个里程碑,以获得信心,然后再将其推送到所有 Windows 11 用户的稳定版本。

VS Code Install dialog with option to add Open with Code - Insiders action

**使用 Code Insiders 打开**操作将在 Windows 文件资源管理器文件夹和文件上下文菜单中可用。

Windows 11 folder context menu

值得注意的修复

  • 151019 调试悬停在悬停时隐藏
  • 153852 提案:移除 ES5 类兼容性以加速扩展 API
  • 156104 如果端口已静态转发,则在 URL 链接单击时不自动转发端口
  • 158921 “设置已在其他位置修改”指示器悬停内容溢出

感谢

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

问题跟踪

对我们问题跟踪的贡献

vscode 的贡献

vscode-pull-request-github 的贡献

对 `vscode-dev-chrome-launcher` 的贡献