现已推出!阅读 10 月份的新功能和修复。

2023 年 4 月(版本 1.78)

更新 1.78.1:此更新解决了此安全 问题

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

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


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

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

内部人员:想要尽早尝试新功能?您可以下载夜间 内部人员 版本,并在新功能可用后立即尝试。

辅助功能

Aria 详细程度设置

屏幕阅读器用户可以通过 "accessibility.verbosity.diff-editor""accessibility.verbosity.terminal" 设置,从功能的 aria-label 中排除提示,以减少冗余。

改进并统一了快速选择体验

以前,辅助功能模式的用户在使用命令面板和其他快速选择时遇到不同的行为。在辅助功能模式下,快速选择中的第一个项目不会被选中,以确保完全可访问。在这个版本中,我们引入了新的行为,让您体验两全其美:可访问的快速的快速选择工作流,让您能够立即按下 Enter

注意:这种方法的一个权衡是,如果快速选择中的某个项目被选中,您将无法听到对快速选择输入框的 ARIA 更改,这是由于 ARIA 的限制。要听到这些更改,您可以按 Shift + Tab,直到列表中没有项目被选中。

终端

终端辅助功能缓冲区改进

  • 使用 ⌥↓ (Windows、Linux Alt+Down)⌥↑ (Windows、Linux Alt+Up) 在命令之间跳转。
  • 使用设置选择锚点从锚点到光标选择以及通过 ⇧PageUp (Windows、Linux Shift+PageUp)⇧PageDown (Windows、Linux Shift+PageDown) 进行页面导航。
  • 在接受转到新位置的命令之前,使用在辅助功能视图中转到符号 (⇧⌘O (Windows、Linux Ctrl+Shift+O)) 预览位置。
  • 在动态更新发生时与输出进行交互。

终端辅助功能帮助菜单

终端的辅助功能帮助菜单现在可以使用箭头键进行导航。

差异编辑器音频提示改进

VS Code 现在会缓存音频提示,因此它们只需加载一次,从而提高响应能力,并改进了用于差异编辑器的音调。

转到行/列公告

当调用转到行/列... (⌃G (Windows、Linux Ctrl+G)) 时,屏幕阅读器现在会朗读相关行内容。

工作台

新的默认颜色主题

新的“深色现代”和“浅色现代”主题取代了“深色+”和“浅色+”,成为新的默认深色和浅色颜色主题。

Dark Modern and Light Modern color themes

配置文件模板

配置文件 允许您根据当前项目或任务快速切换编辑器扩展、设置和 UI 布局。为了帮助您开始使用配置文件,我们发布了 配置文件模板,这些模板是针对不同编程语言和场景的精选配置文件。您可以按原样使用配置文件模板,也可以将其用作起点,进一步自定义以适应您自己的工作流程。

您可以通过配置文件>创建配置文件...下拉菜单选择配置文件模板

Create Profile dropdown with profile templates

选择配置文件模板后,您可以查看设置、扩展和其他数据,并删除您不想包含在新建配置文件中的单个项目。

Profiles view showing the contents of the Data Science profile template

在您基于模板创建新配置文件后,对设置、扩展或 UI 所做的更改将持久保存到您的配置文件中。

字形边距装饰渲染改进

本月,我们改进了显示在编辑器边距中的装饰的渲染。调试相关的装饰(例如断点和堆栈帧指针)将始终渲染在编辑器行号旁边。其他装饰渲染在任何调试相关装饰的左侧。这样,即使同一行上有其他装饰(例如测试装饰或书签),您也可以查看断点。请注意,单击尚未针对单个装饰进行范围限定。

bookmarks displayed next to breakpoint and stack frame pointer decorations

从图像预览复制图像

您现在可以使用 ⌘C (Windows、Linux Ctrl+C) 或通过在预览中右键单击并选择复制,从内置图像预览中复制图像。复制的图像数据可以粘贴回 VS Code 或其他应用程序。

编辑器

拖放选择器

VS Code 允许您通过在拖放之前按住 Shift 来将文件和内容拖放到文本编辑器中。在此更新中,我们添加了 UI,让您更改将此内容插入文件的方式。例如,将图像拖放到 Markdown 文件中后,此控件允许您在插入 Markdown 图像、工作区相对于图像的路径以及图像的完整路径之间切换

只要您拖放内容并且存在多种可能的插入方式,拖放选择器控件就会出现。您可以通过单击它或使用 ⌘. (Windows、Linux Ctrl+.) 打开该控件。只要您开始键入或将光标移出插入的文本,拖放选择器就会消失。您还可以使用 "editor.dropIntoEditor.showDropSelector": "never" 完全禁用拖放选择器控件。

VS Code 包含几种内置方式来拖放常见的内容格式。扩展还可以使用 DocumentDropEditProvider API 添加自己的拖放选项。

独立颜色选择器

现在可以启动一个独立的颜色选择器来插入和替换颜色。要打开颜色选择器,请从命令面板中选择显示或聚焦独立颜色选择器

Standalone color picker control adjusted to blue color

当扩展未提供任何颜色或颜色格式时,颜色选择器会回退到 CSS 格式的颜色。现在还可以可视化所有文件类型中 CSS 格式颜色的内联颜色装饰器。要显示这些装饰器,请启用编辑器:默认颜色装饰器 (editor.defaultColorDecorators) 设置。

用于时区偏移的新片段变量

现在可以使用新的片段变量 CURRENT_TIMEZONE_OFFSET。此变量返回格式为 +HH:MM-HH:MM 的当前时区偏移量(例如 -07:00)。这补充了其他与时间相关的片段变量,例如 CURRENT_YEARCURRENT_MONTHCURRENT_DAY_NAME 等。

差异算法改进

我们继续改进 VS Code 中的新差异算法,并弃用了旧算法。虽然旧算法仍然是差异编辑器的默认算法,但我们将逐渐将默认算法更改为新算法,并衡量其性能。

您可以通过将 diffEditor.diffAlgorithm 设置为 advanced (新差异算法) 或 legacy (默认) 来覆盖默认算法。

新算法在许多情况下都能产生更好的差异,但对于某些文档来说可能速度较慢。

以下是一些示例(旧版与高级版)

  • 通过考虑缩进改进行插入差异

    JSON file diff result using legacy algorithm

    JSON file diff result using advanced algorithm

  • 通过考虑空格和分隔符改进单词插入差异

    TypeScript imports word insertion diff using legacy algorithm

    TypeScript imports word insertion diff using advanced algorithm

  • 通过最小化差异的长度以及块的数量,使差异更自然

    TypeScript added line diff using legacy algorithm

    TypeScript added line diff using advanced algorithm

  • 如果单词的一部分发生重大更改,通过将字符级差异扩展到整个单词来减少噪音

    TypeScript code change diff using legacy algorithm

    TypeScript code change diff using legacy algorithm

对源代码进行差异化甚至只是评估差异的质量都是难题,还有改进的空间。如果您遇到一个差异,您认为该算法可以做得更好,请尝试一下我们的 差异游乐场,并在我们的问题跟踪器中分享您的反馈和想法!

内联完成改进

在这个版本中,我们重写了内联完成功能,并修复了 许多错误

最值得注意的是,Accept Word 现在可以在多行中使用,并且新增了一个命令 Accept Line。为了支持此功能,接受下一个单词/行不会再次询问扩展程序,因为内联完成提供程序扩展程序在请求下一行的内联完成时通常会报告完全不同的建议。

扩展

改进的扩展程序推荐通知

扩展程序推荐通知现在显示了推荐扩展程序的发布者。这将帮助你在安装扩展程序之前做出更明智的决定。以下图片显示了当有单个扩展程序和多个扩展程序的推荐时的新的通知。

Extension recommendations notification with a single recommendation Extension recommendations notification with multiple recommendations

告知已安装的已弃用扩展程序

如果你安装了已弃用的扩展程序,你将收到一个通知告知你并建议替代方案。每个已弃用扩展程序只显示一次。

Notification about deprecated extension

源代码管理

源代码管理输入中的快速修复

代码操作和快速修复现在支持源代码管理消息框

例如,Code Spell Checker 扩展程序在源代码管理输入中添加了拼写修复。扩展程序可以提供其他修复和代码操作。

GitHub 存储库规则集

VS Code 已经允许你使用 git.branchProtection 设置定义分支保护。在本里程碑中,我们添加了一个新的实验性功能,该功能使用最近宣布的 GitHub 存储库规则集 来确定分支是否受保护。如果你使用 GitHub 存储库规则集,则可以使用 github.branchProtection 设置启用此功能。

笔记本

将图像文件拖放到笔记本中以创建附件

你现在可以将图像文件拖放到笔记本 Markdown 单元格中以创建附件。当你拖放图像时,使用 新的拖放选择器控件 选择 将图像插入为附件

Using the drop selector in a notebook Markdown cell

这将图像作为附件添加到笔记本中,而不是简单地添加指向图像的链接

An image file added as an attachment

切换笔记本输出滚动

你现在可以通过命令 笔记本:切换滚动单元格输出 (⌘K Y (Windows, Linux Ctrl+K Y)) 或截断消息中的链接来切换各个单元格以在可滚动区域中显示输出。

查找控件改进

笔记本查找控件现在默认情况下搜索视觉上显示的关键字。用户可以通过设置 notebook.find.scope 来更改搜索范围(Markdown 源、Markdown 预览、代码源和代码输出)。此外,在替换匹配项时,Markdown 单元格将转换为可编辑单元格,以便你进行替换。完成后,单元格将转换回 Markdown,并恢复预览。

语言

将视频拖放到 Markdown 文件中

想要将视频插入 Markdown 中?只需将其拖放到编辑器中,然后按住 Shift 将其拖放到文件中

这将插入一个指向视频文件的 <video> 标签。你可以从 VS Code 的资源管理器或本地操作系统中拖放视频。

HTML 中 JavaScript 脚本块的严格空值

你现在可以使用 js/ts.implicitProjectConfig.strictNullChecks 设置为 HTML 脚本块中的 JavaScript 启用严格空值

Strict nulls in a script block

启用严格空值后,悬停和其他 IntelliSense 功能将显示何时类型可以为空。例如,注意 el 现在如何具有 HTMLElement | null 类型。这是因为 document.getElementById 在找不到具有该 ID 的元素时返回 null。

测试

连续运行 现在可以为单个测试打开。这需要一个支持连续运行并已采用上一迭代中最终确定的 supportsContinuousRun API 的测试扩展程序。

Continuous run button highlighted on an individual test

适用于 Web 的 VS Code

将文件提交到 Git Large File Storage

Git Large File Storage (LFS) 允许你在 Git 存储库中高效地存储大型文件。 github.devvscode.dev 现在支持将文件提交到托管在 GitHub 上的存储库中的 Git LFS,从而无需在本地安装 Git 的 LFS 扩展程序即可从浏览器轻松进行更新。

github.dev 和 vscode.dev 中的 LFS 提交支持在你的存储库根目录中已存在一个 .gitattributes 文件并指定应使用 Git LFS 存储哪些文件类型时开箱即用。若要首次为 Git LFS 设置存储库,请咨询 Git LFS 文档。

远程开发

远程开发扩展 允许你使用 开发容器、通过 SSH 或 远程隧道 的远程机器,或 Windows Subsystem for Linux (WSL) 作为功能齐全的开发环境。

你可以在 远程开发发行说明 中了解有关新扩展功能和错误修复的信息。

并查看 使用 VS Code 随时随地开发 VS Code 日活动。

对扩展的贡献

Python

Jupyter 扩展不再默认安装

Jupyter 扩展程序不再默认情况下与 Python 扩展程序一起自动安装。此更改是根据来自 反馈开发容器 用户进行的,他们希望在没有默认安装 Jupyter 扩展程序的情况下更快地创建容器。

如果你有只列出 Python 扩展程序的开发容器定义,并希望继续在容器中使用 Jupyter 笔记本功能,则可以将 Jupyter 扩展程序 ID 添加到 devcontainer.json 文件中

  "customizations": {
    "vscode": {
      "extensions": ["ms-python.vscode-pylance", "ms-python.python", "ms-toolsai.jupyter"]
    }
  }

或者,你可以创建一个 配置文件,其中包括 Python 和 Jupyter 扩展程序,以及你喜欢的任何其他扩展程序。

使用 microvenv 创建环境命令

当使用没有安装 venv 包的 Python 发行版调用 Python:创建环境 命令时,Python 扩展程序现在使用 microvenv 作为后备。这对预装在基于 Unix 的系统上的 Python 环境来说可能是一个障碍。

Microvenv 是一个轻量级的 Python 模块,它为你的 Python 项目提供了创建虚拟环境的极简主义方法。它没有像虚拟环境那样的传统激活脚本,但它为在 Python 发行版中没有 venv 模块时创建隔离的环境提供了良好的替代方案。

创建环境 命令还将在通过 microvenv 创建的环境中安装 pip

格式化程序扩展程序推荐

在之前的版本中,我们宣布了 Black Formatterautopep8 的新扩展程序,它们通过 语言服务器协议 (LSP) 与 Python 扩展程序协同工作,为 Python 文件提供格式化。在本版本中,如果仍在使用 Python 扩展程序的内置格式化功能,我们将显示一个通知,提示你安装这些新的扩展程序。

运行 Python 操作现在位于子菜单中

为了简化在编辑器中右键单击时可用的 Python 命令,在终端中运行 Python 文件在 Python 终端中运行选择/行 命令现在是 运行 Python 条目下的子菜单项。

Run Python option on context menu with "Run file in terminal" and "Run selection/line" options in the submenu

自动转换 f 字符串

有一个新的 "python.analysis.autoFormatStrings" 设置,它在使用 Pylance 时启用 f 字符串的自动转换。启用后,Pylance 会在你在引号内插入 { 时自动在字符串开头插入 f

此设置的默认值当前已禁用,但将在即将发布的版本中启用,前提是收到积极的反馈。如果你对此功能有任何意见或建议,请随时在 Pylance GitHub 存储库 中分享。

在包含路径的字符串上启用代码导航

还有一个新的实验性设置,称为 "python.analysis.gotoDefinitionInStringLiteral",它允许从类似模块的字符串文字中 转到定义。如果你正在开发 Web 应用程序(例如 Django 应用程序)并想要导航到在字符串文字中定义的模块或路径,这将很有用

这个新设置(与前面提到的 autoFormatStrings 设置一样)当前默认情况下已禁用。但是,我们计划根据反馈在将来的版本中启用此行为。最终,我们计划完全删除此设置。

Jupyter

重启命令

Jupyter 扩展程序现在包含两个新的命令,使用户能够重启内核并直接运行单元格。这些命令是 重启内核并运行所有单元格重启内核并运行到所选单元格,可以通过命令 ID jupyter.restartkernelandrunallcellsjupyter.restartkernelandrunuptoselectedcell 分别访问。

重新连接到繁忙的远程 Jupyter 内核

在之前的版本中,当连接到远程 Jupyter 内核会话时,Jupyter 扩展会等待内核空闲后再连接。如果内核正在运行长时间的计算,这可能需要很长时间。在这个版本中,Jupyter 扩展会立即连接到内核,即使它很忙。这允许你在内核繁忙时中断它。

特定平台的 Jupyter 扩展

Jupyter 扩展现在提供特定平台的扩展,每个 VSIX 都是为特定平台构建的(Windows 64 位、Windows 32 位、Linux x64、Alpine x64、macOS Intel、macOS Apple Silicon 等)。单个平台的 Jupyter 扩展的下载大小更小,从而导致更快的下载时间和更少的磁盘空间占用。

GitHub 拉取请求和问题

GitHub 拉取请求和问题扩展方面取得了更多进展,该扩展允许你处理、创建和管理拉取请求和问题。亮点包括

  • 你可以将团队审阅者添加到拉取请求中。
  • 所有可以检出默认分支的地方现在都尊重git.pullBeforeCheckout设置。
  • 支持 GitHub 的文件级评论。

查看该扩展的 0.64.0 版本的变更日志,了解其他亮点。

GitHub Copilot

注意:这些功能在GitHub Copilot Chat扩展中可用。

聊天编辑器

我们对 GitHub Copilot Chat 的首次迭代允许在侧边栏中进行聊天会话。现在,我们支持将相同的聊天视图打开为编辑器。这使你能够自定义聊天会话的位置,使其位于窗口布局中的任何位置。

你可以通过运行命令交互式会话:打开编辑器来打开聊天编辑器,然后像对待其他任何编辑器一样在编辑器组之间移动它。

A chat view as an editor

额外的代码块命令

代码块工具栏中有两个新命令:插入到新文件在终端中运行。它们位于现有命令复制插入到光标处旁边,为你提供了更多选项,可以快速对从 Copilot 返回的代码建议采取行动。

The codeblock toolbar showing the two new codeblock commands

代码操作和内联聊天

编辑器聊天会话现在与快速修复集成。选择波浪线的灯泡,便可以选择使用 Copilot 进行修复或解释。

除了代码操作之外,现在还可以从编辑器上下文菜单访问内联聊天。

内联聊天模式

现在有一个设置可以更改内联聊天的不同模式:inlineChat.editMode

选项包括

  • live - 将 AI 建议的更改直接应用于编辑器(默认值)。
  • livePreview - 应用更改,但将它们呈现在嵌入式差异编辑器中。
  • preview - 在断开连接的嵌入式差异编辑器中显示更改。

命令面板中的类似命令

借助 Copilot 的强大功能,命令面板现在能够显示类似的命令结果。要启用此功能,你必须拥有活动的 Copilot 订阅,处于聊天视图的私人预览版中,并应用以下设置

"workbench.commandPalette.experimental.useSemanticSimilarity": true

以下是一些示例

  • "turn on autosave" 被解释为切换自动保存

    query "turn on autosave" is correctly resolved to Toggle Auto Save

  • "add function" 在底部包含来自扩展的额外结果。

    query "add function" including Azure Functions Create Function command

  • 最后,如果你的结果没有产生任何结果,你可以询问 GitHub Copilot,这会将你的筛选器框中的内容放入新的聊天中,以便 Copilot 处理。

    Ask GitHub Copilot "no results" option in the Command Palette

我们将在这个领域不断迭代,敬请期待!

预览功能

TypeScript 5.1 支持

此更新包括对即将发布的 TypeScript 5.1 版本的支持。阅读TypeScript 5.1 Beta 博客文章TypeScript 5.1 迭代计划,详细了解 TypeScript 团队目前正在进行的工作。一些编辑器工具亮点

  • 对 JSX 标签的链接编辑支持。
  • 针对@param JSDoc 标签的代码片段补全。

要开始使用 TypeScript 5.1 nightly 构建,请安装TypeScript Nightly扩展。

使用 F2 重命名匹配的 JSX 标签

当你触发对 JSX 标签的重命名时,VS Code 现在只重命名匹配的标签,而不是尝试更新对该标签的所有引用。

这需要 TypeScript 5.1+,并且与 HTML 中的重命名工作方式一致。

你可以使用javascript.preferences.renameMatchingJsxTagstypescript.preferences.renameMatchingJsxTags禁用此行为。

扩展创作

工作区编辑现在可以直接从 DataTransferFile 创建文件

将文件拖放到编辑器 API的主要用途之一是将拖放的文件/内容写入工作区。但是,在之前的 VS Code 版本中,对于大型文件来说,这可能相当缓慢。这是因为文件内容最终会在进程之间复制两次:第一次从渲染器复制到扩展宿主以读取文件内容,然后从扩展宿主复制回渲染器以写入文件。

class CreateFileDropProvider implements vscode.DocumentDropEditProvider {
  async provideDocumentDropEdits(
    _document: vscode.TextDocument,
    _position: vscode.Position,
    dataTransfer: vscode.DataTransfer,
    _token: vscode.CancellationToken
  ): Promise<vscode.DocumentDropEdit | undefined> {
    const pngFile = dataTransfer.get('image/png')?.asFile();
    if (!pngFile) {
      return;
    }

    // Read file
    // This results in the entire file contents being copied over to the extension host.
    const contents = await pngFile.data();

    // Now create a workspace edit that writes the file into the workspace
    // This results in the same file contents from above being copied back again.
    const additionalEdit = new vscode.WorkspaceEdit();
    const path = vscode.Uri.joinPath(
      vscode.workspace.workspaceFolders![0].uri,
      'image.png'
    );
    additionalEdit.createFile(path, { contents });

    const edit = new vscode.DocumentDropEdit(path.fsPath);
    edit.additionalEdit = additionalEdit;
    return edit;
  }
}

现在,你可以通过将DataTransferFile直接传递给WorkspaceEdit.createFile来避免这些额外的复制操作。

additionalEdit.createFile(path, { contents: pngFile });

这将显着提高性能,尤其是在处理大型文件时。

在 resolveCodeAction 中解析代码操作命令

CodeActionProvider现在可以在resolveCodeAction中延迟解析CodeAction的命令。以前,只有 Code Action 的编辑可以延迟解析。

如果命令计算成本高昂,这将允许CodeActionProvider将此工作推迟到 Code Action 将要应用为止。

editor/lineNumber/context 菜单

我们已经完成了editor/lineNumber/context菜单。这允许扩展作者将操作贡献到与编辑器行号和符号边距相连的上下文菜单。贡献给此菜单的操作会在命令参数中收到行号,并且可以在它们的 when 子句中引用editorLineNumber上下文键。

身份验证 API 改进

身份验证会话首选项现在支持工作区感知

对于支持一次登录多个帐户的身份验证提供者(如 Microsoft),当调用vscode.authentication.getSession并设置createIfNone: true时,会提示用户选择要使用的帐户。

之前的行为

此首选项会被记住,直到vscode.authentication.getSession在调用时带有ClearSessionPreference标志。

新的行为

此首选项会被记住,直到vscode.authentication.getSession在该工作区中调用时带有ClearSessionPreference标志。

此行为的引入是为了允许扩展对不同的工作区使用不同的帐户,并允许这些首选项被记住。

注意:此首选项是特定于扩展的。因此,如果一个扩展调用vscode.authentication.getSession,则不会影响另一个扩展调用vscode.authentication.getSession的会话首选项。

台式机上的 Microsoft 主权云支持

在这个迭代中,我们向核心产品中引入了一个新的身份验证提供者:Microsoft 主权云。此提供者用于向Microsoft 主权云(如 Azure US Government、Azure China 等)进行身份验证。在底层,它的工作原理与Microsoft身份验证提供者相同,只是使用了不同的 URL。如果你要使用此身份验证提供者,可以引导用户通过设置microsoft-sovereign-cloud.endpoint值来进行操作,该值有一些默认值,但也支持自定义的主权云 URL。

请记住,大多数用户没有主权云帐户。我们的建议是,如果你要支持主权云,应该允许用户通过主权云登录,但不将其作为主流程的一部分,以免让用户感到困惑。

建议的 API

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

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

你不能发布使用提议 API 的扩展。在下一个版本中可能会出现重大更改,我们永远不想破坏现有的扩展。

格式化多个范围

DocumentRangeFormattingEditProvider API 具有一个可选的提议函数,用于支持一次格式化多个范围。通过采用此 API,提供者改进了格式化修改范围的流程,因为只需要对语言服务进行一次请求。

文档拖放元数据

此新的提议丰富了现有的拖放到编辑器 API,以支持新的拖放选择器。提供者可以使用它来提供更好的拖放到编辑器的体验。

此提议的第一部分在DocumentDropEdit中添加了一个label属性。此人类可读的标签描述了编辑,并在拖放选择器 UI 中显示。

Labels shown in the drop selector

第二部分在registerDocumentDropEditProvider中添加了一个额外的metadata参数。此元数据参数标识提供者并告诉 VS Code 它适用的内容类型。

vscode.languages.registerDocumentDropEditProvider(
  'markdown',
  new InsertBase64ImageProvider(),
  {
    // Unique id that identities this provider
    id: 'insertBase64Image',

    // Array of mime types, such as `image/png` or `text/plain`, that this provider supports.
    // You can also use wildcards, such as `image/*` which matches any image content that is dropped.
    dropMimeTypes: ['image/*']
  }
);

dropMimeTypes数组可以帮助提高性能,因为你的提供者只会在相关的拖放内容上被调用。

工程

Electron 22 更新

在这个里程碑中,我们已经完成了使用自定义分配器来扩展宿主的实验,并且准备将 Electron 22 捆绑到 VS Code Desktop 中。我们要感谢每个人参与在Insider 版本中进行自托管并提供了早期反馈。此更新附带 Chromium 108.0.5359.215和 Node.js 16.17.1

VS Code Day

你可以通过VS Code Day 2023 YouTube 播放列表,了解 VS Code Day 的所有亮点。在那里你会找到关于以下主题的会议:GitHub Copilot数据科学TypeScript,以及 Erich Gamma 和 Kai Maetzel 的主题演讲,他们在演讲中解释了团队是如何构建和发布 VS Code 的。

感谢

最后但并非最不重要的是,我们要对 VS Code 的贡献者表示衷心的感谢

问题跟踪

对我们的问题跟踪的贡献

拉取请求

vscode的贡献

vscode-js-debug 的贡献

vscode-json-languageservice 的贡献

vscode-pull-request-github 的贡献

monaco-editor 的贡献

devcontainers/cli 的贡献