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

2023年4月 (版本 1.78)

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

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

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


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

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

内部人士: 想尽快尝试新功能吗?你可以下载 内部人士 构建版,并在最新更新可用时立即尝试。

无障碍

Aria 详细程度设置

屏幕阅读器用户可以排除功能的提示aria-label通过这种方式减少冗余"可访问性.详细程度.差异编辑器""可访问性.详细程度.终端"设置。

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

之前,无障碍模式的用户在使用命令面板和其他快速选择时会体验到不同的行为。在无障碍模式下,快速选择的第一个项目没有被选中,以便完全无障碍。在这一迭代中,我们引入了新的行为,使您能够兼得两者之长:一个无障碍的快速的快速选择工作流程,允许您立即按回车键

注意:使用此方法的一个权衡是,如果快速选择中的某个项目被选中,由于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)
  • 在动态更新发生时与输出互动。

终端无障碍帮助菜单

终端的无障碍帮助菜单现在可以使用方向键进行导航。

Diff编辑器音频提示改进

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

去行/列公告

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

工作台

新的默认颜色主题

新的“暗现代”和“亮现代”主题取代“暗+”和“亮+”成为新的默认深色和浅色主题。

深现代和浅现代配色主题

个人资料模板

配置文件 让你根据当前的项目或任务快速切换编辑器扩展、设置和用户界面布局。为了帮助你开始使用配置文件,我们提供了 配置文件模板,这些是为不同的编程语言和场景精心挑选的配置文件。你可以直接使用配置文件模板,或者将其作为起点,进一步自定义以适应你自己的工作流程。

您通过 配置文件 > 创建配置文件... 下拉菜单选择一个配置文件模板:

创建带有配置文件模板的配置文件下拉菜单

一旦你选择了一个个人资料模板,你就可以查看设置、扩展和其他数据,并且如果你不希望将某些项目包含在你的新个人资料中,可以删除个别项目。

配置文件视图显示数据科学配置文件模板的内容

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

字形边缘装饰渲染改进

本月,我们改进了在编辑器边缘出现的装饰物的渲染效果。调试相关的装饰物,如断点和堆栈帧指针,将始终渲染在编辑器行号旁边。其他调试相关的装饰物会渲染在任何调试相关装饰物的左边。这允许您即使在同一条线上有其他装饰物(如测试装饰物或书签)的情况下也能查看您的断点。请注意,点击目前还不能限制在单个装饰物上。

书签显示在断点和栈帧指针标记的旁边

从图像预览中复制图像

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

编辑器

下拉选择器

VS Code 允许您在按住Shift键的同时将文件和内容拖放到文本编辑器中。在此次更新中,我们添加了一个用户界面,允许您更改此内容如何插入到文件中。例如,将图像拖放到 Markdown 文件中后,此控件允许您在插入 Markdown 图像、图像相对于工作区的相对路径和图像的完整路径之间进行切换:

当您拖放内容并且插入内容的方法不止一种时,下拉选择器控件会显示。您可以通过点击它或使用⌘.(Windows, LinuxCtrl+.)打开控件。一旦您开始输入或移动光标到插入文本之外,下拉选择器就会消失。您还可以使用完全禁用下拉选择器控件。"editor.dropIntoEditor.showDropSelector": "never"输入:.

VS Code 包含了几种内置的常见内容格式的插入方式。扩展程序还可以使用 来添加自己的插入选项。文档拖放编辑提供程序应用程序编程接口。

独立式颜色选择器

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

独立颜色选择器控件调整为蓝色

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

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

一个新的片段变量,当前时区偏移量,现在可用。这个变量以格式返回当前时区偏移量+时:分-时:分(例如-07:00). 这补充了其他时间相关的片段变量,例如当前年份当前月份当前日期名称,等等。

差异算法改进

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

您可以通过设置覆盖默认值diffEditor.diffAlgorithm高级(新的差异算法)或遗产(默认)。

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

以下是一些示例(传统 vs. 高级):

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

    使用旧版算法的JSON文件差异结果

    使用高级算法的JSON文件差异结果

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

    TypeScript导入单词插入差异使用旧版算法

    TypeScript导入单词插入差异使用高级算法

  • 通过最小化不仅差异的长度,还包括块的数量,来实现更自然的差异:

    TypeScript 使用旧算法添加了行差异功能

    TypeScript 使用高级算法添加了行差异功能

  • 通过将字符级别的差异扩展到整个单词来减少噪音,如果单词的一部分发生了显著变化:

    使用旧版算法的TypeScript代码更改差异

    使用旧版算法的TypeScript代码更改差异

源代码的比对甚至是仅仅评估一个比对结果的质量都是困难的问题,还有改进的空间。如果你遇到一个你觉得算法可以做得更好的比对结果,试试我们的比对 playground,并在我们的 issue tracker 中分享你的反馈和想法!

内联完成改进

在这一迭代中,我们重写了内联完成功能并修复了许多错误

最显著的是,接受单词现在可以跨行,并且有一个新命令接受行。为了支持这一功能,接受下一个单词/行不会再次询问扩展,因为当请求下一行的内联完成建议时,内联完成提供程序扩展通常会报告完全不同的建议。

扩展

改进的扩展推荐通知

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

扩展推荐通知,包含一个推荐。 扩展推荐通知,包含多个推荐

通知已安装的已弃用的扩展

如果您安装了一个已弃用的扩展程序,您现在将收到一条通知,告知您此情况并建议替代方案。这只会显示一次,针对每个已弃用的扩展程序。

关于已弃用扩展的通知

源代码管理

源代码控制输入中的快速修复

代码操作和快速修复现在在源代码控制消息框中受支持:

代码拼写检查器扩展,例如,向源代码控制输入添加拼写修复。扩展可以提供额外的修复和代码操作。

GitHub 代码库 规则集

VS Code 已经允许您使用 来定义分支保护git.分支保护 设置。这个里程碑我们增加了一个新的实验性功能,使用最近宣布的 GitHub 仓库规则集 来判断分支是否受保护。如果你正在使用 GitHub 仓库规则集,你可以通过使用 github.分支保护设置。

笔记本电脑

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

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

在笔记本的Markdown单元格中使用下拉选择器

这将图像作为附件添加到笔记本中,而不是仅仅添加图像链接:

作为附件添加的图像文件

切换笔记本输出滚动

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

查找控制改进

笔记本 Find control 现在默认搜索视觉上呈现的关键词。用户可以通过设置更改搜索范围(Markdown 源、Markdown 预览、代码源和代码输出)。notebook.find.scope此外,当替换匹配项时,Markdown单元格会转换为可编辑单元格,以便您可以进行替换。完成后,单元格会转换回Markdown,并恢复预览。

语言

将视频拖放到Markdown文件中

想在你的Markdown中插入一个视频?只需将其拖动到编辑器中,然后按住Shift将其放入文件中:

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

HTML中的JavaScript脚本块的严格空值

您现在可以使用js/ts.implicitProjectConfig.strictNull Checks在HTML脚本块中为JavaScript设置严格空值:

脚本块中的严格空值

启用严格空值后,悬停和其他IntelliSense功能会在类型可以为可空类型时显示。例如,请注意el现在有一种类型HTML元素 | null这是因为它文档.getElementById如果找不到具有该ID的元素,则返回null。

测试

连续运行 现在可以为单个测试打开。这需要一个支持连续运行并采用 支持连续运行API在上一迭代中完成。

在单个测试中,连续运行按钮被突出显示

VS Code 用于网页

将文件提交到Git大文件存储

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子系统 for Linux(WSL)作为功能齐全的开发环境。

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

并查看 在 VS Code 上开发任何地方 VS Code 会议。

对扩展的贡献

Python

Jupyter 扩展不再默认安装

默认情况下,Jupyter扩展不再与Python扩展一起自动安装。这一变化是根据反馈做出的,开发容器用户希望在没有默认安装Jupyter扩展的情况下加快容器创建过程。

如果您有仅列出Python扩展的Dev Container定义,并且希望继续在容器中使用Jupyter笔记本功能,您可以将Jupyter扩展ID添加到您的devcontainer.json文件:

  "定制": {
    "vscode": {
      "扩展": ["ms-python.vscode-pylance", "ms-python.python", "ms-toolsai.jupyter"]
    }
  }

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

创建环境命令与microvenv

当使用没有Python: Create environment命令的Python发行版时虚拟环境 已安装的包,Python 扩展现在使用 microvenv 作为备用。这可能对在基于 Unix 的系统上预安装的 Python 环境构成障碍。

Microvenv 是一个轻量级的 Python 模块,提供了一种简约的方法来为你的 Python 项目创建虚拟环境。它不像传统的虚拟环境那样配备激活脚本,但它在创建隔离环境时提供了一个很好的替代方案。虚拟环境模块在你的Python发行版中不可用。

创建环境命令还将安装皮普进入通过创建的环境微环境输入:.

格式化扩展推荐

在之前的版本中,我们宣布了新的扩展 Black Formatterautopep8,这些扩展通过 语言服务器协议 (LSP) 与 Python 扩展配合,为 Python 文件提供格式化功能。在此次发布中,如果您仍在使用 Python 扩展的内置格式化功能,我们会显示一个通知,提示您安装这些新的扩展。

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

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

在上下文菜单中运行Python选项,使用子菜单中的“在终端中运行文件”和“运行选择/行”选项

自动转换 f-strings

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

此设置的默认值目前是禁用的,但在即将发布的版本中,如果收到积极反馈,将会启用。如果您对这个功能有任何评论或建议,请随时在Pylance GitHub 仓库上分享。

代码导航已启用,适用于包含路径的字符串

还有一个新的实验设置叫做"python.analysis/gotoDefinitionInStringLiteral" 这使得 转到定义 可以从模块-like字符串字面量。如果你正在开发网页应用程序,例如Django应用程序,并且想导航到字符串字面量中定义的模块或路径,这将很有帮助:

这个新设置,像自动格式化字符串前面提到的设置目前默认禁用。然而,基于反馈,我们计划在未来版本中启用此行为。最终,我们计划完全移除此设置。

朱庇特

重启命令

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

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

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

平台特定的 Jupyter 扩展

Jupyter 扩展现在包含 特定平台的扩展,每个 VSIX 针对特定平台(Windows 64 位,Windows 32 位,Linux x64,Alpine x64,macOS Intel,macOS Apple Silicon 等)构建。各个平台的 Jupyter 扩展下载大小更小,从而导致下载时间更短和磁盘空间使用更少。

GitHub 拉取请求和问题

GitHub Pull Requests and Issues扩展上取得了更多进展,该扩展允许您处理、创建和管理拉取请求和问题。亮点包括:

  • 您可以将团队审阅者添加到拉取请求中。
  • 所有可以切换默认分支的地方现在都遵守git拉取更新设置。
  • GitHub 支持文件级别的评论。

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

GitHub Copilot

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

聊天编辑器

我们在 GitHub Copilot Chat 的第一个版本中启用了侧边栏中的聊天会话。现在,我们支持以编辑器的形式打开相同的聊天视图。这使您能够自定义聊天会话的位置,使其在Windows布局内的任何位置。

你可以通过运行命令 交互式会话:打开编辑器 来打开聊天编辑器,并且可以像对待其他编辑器一样将其移动到编辑器组之间。

聊天视图作为编辑器

附加代码块命令

代码块工具栏中新增了两个命令,插入到新文件在终端中运行。这些命令位于现有的命令 复制在光标处插入 旁边,为快速处理来自 Copilot 的代码建议提供了额外的选项。

代码块工具栏显示了两个新的代码块命令

代码操作和内联聊天

编辑器聊天会话现在已与快速修复功能集成。选择波浪线即可选择使用 Copilot 修复或解释的选项。

除了代码操作,内联聊天现在也可以从编辑器上下文菜单中使用。

内联聊天模式

现在有一个设置可以更改内联聊天的不同模式:内联聊天编辑模式输入:.

选项如下:

  • 直播- 直接将AI建议的更改应用到编辑器(默认)。
  • 现场预览- 应用更改但在嵌入式差异编辑器中进行渲染。
  • 预览- 在断开连接的、嵌入式差异编辑器中显示更改。

命令面板中的类似命令

借助 Copilot 的力量,命令面板现在能够显示类似的命令结果。要启用此功能,您必须拥有有效的 Copilot 订阅,处于聊天视图的私人预览状态,并应用设置:

"workbench.commandPalette.experimental.useSemanticSimilarity"

以下是一些示例:

  • “开启自动保存” 被解释为 切换自动保存

    查询“开启自动保存”已正确解析为切换自动保存

  • “添加功能” 包括来自扩展的额外结果,位于底部。

    查询 "添加函数" 包括 Azure Functions Create Function 命令

  • 最后,如果您的结果没有找到任何结果,您可以询问 GitHub Copilot,这将把过滤器中的内容放入一个新的聊天中,由 Copilot 处理。

    在命令面板中询问 GitHub Copilot “无结果” 选项

我们会在这个领域继续努力,请持续关注!

预览功能

TypeScript 5.1 支持

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

  • 对 JSX 标签的支持。
  • 片段完成@参数JSDoc 标签。

要开始使用TypeScript 5.1的夜间构建版本,请安装TypeScript Nightly扩展。

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

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

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

您可以使用以下方法禁用此行为javascript.偏好设置.重命名匹配的Jsx标签typescript.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 });

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




现在你可以通过传递一个来避免那些额外的副本数据传输文件直接到创建文件输入:

额外编辑.创建文件(路径, { 内容: png文件 });

这应该显著提高性能,特别是在处理大型文件时。

在 resolveCodeAction 中解析代码操作命令

一个代码行动提供程序现在可以懒惰地解析命令代码操作解析代码行动之前只能懒惰地解析代码行动的编辑。

如果命令计算成本高,这允许一个代码行动提供程序推迟这项工作,直到代码操作被应用。

编辑器/行号/上下文菜单

我们已经完成了编辑器/行号/上下文菜单。这允许扩展作者向上下文菜单贡献操作,该菜单固定在编辑器行号和字形边距上。贡献到此菜单的操作会在命令参数中收到行号,并且可以参考编辑器行号在他们的when子句中的上下文键。

认证 API 改进

身份验证会话偏好现在具有工作区感知能力

对于支持同时登录多个账户的认证提供商(如微软),当用户尝试登录时,系统会提示用户选择一个账户来使用。vscode.authentication.getSession创建如果不存在: true被调用了。

先前行为:

此偏好将被记住,直到vscode.authentication.getSession被调用清除会话偏好旗帜。

新行为:

此偏好会在每个工作区中记住,直到vscode.authentication.getSession在那个工作区中被调用清除会话偏好旗帜。

此行为被引入以允许扩展在不同的工作区中使用不同的帐户,并允许记住这些偏好。

注意:该偏好是扩展特定的。因此,如果一个扩展调用vscode.authentication.getSession,它不会影响另一个扩展调用的会话偏好。vscode.authentication.getSession输入:.

微软主权云桌面支持

在这一版本中,我们将在核心产品中引入一个新的认证提供商:微软主权云此提供程序用于将用户验证到微软主权云,如 Azure 美国政府版,Azure 中国版等。在内部,它与微软认证提供者,仅支持不同的URL。如果您想使用此认证提供者,可以指导用户设置microsoft-sovereign-cloud.endpointvalue,具有几个默认值,但也支持自定义的主权云网址。

请记住,大多数用户没有Sovereign Cloud账户。我们的建议是,如果您想支持Sovereign Clouds,应使用户能够通过Sovereign Clouds登录,但不要将其包含在主要工作流程中,以免用户感到困惑。

提议的API

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

  1. 找到一个你想尝试的提案 并将其名称添加到 package.json#启用的API提案输入:.
  2. 使用最新的 vscode-dts 并运行 vscode-dts 开发它将下载相应的d.ts将文件放入您的工作区。
  3. 您现在可以针对该提案进行编程。

您不能发布使用提议 API 的扩展。 下一次发布可能会有重大更改,我们绝不会破坏现有的扩展。

格式化多个范围

这个文档范围格式编辑提供者API 有一个可选的提议功能,可以同时支持格式化多个范围。通过采用这个 API,提供者可以改善格式修改范围的流程,因为只需要向语言服务发送一次请求。

文档掉落元数据

这个新提案丰富了现有的插入到编辑器 API,以支持新的插入选择器。提供者可以使用它来提供更好的插入到编辑器体验。

本提案的第一部分增加了一个Tab属性到文档拖放编辑. 这个可读标签描述了编辑内容,并显示在下拉选择器用户界面中:

下拉选择器中显示的标签

第二部分增加了额外的元数据参数到注册文档拖放编辑提供者. 这个元数据参数标识了提供者,并告诉 VS Code 它适用的内容类型:

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

    // 支持此提供程序的MIME类型数组,例如`image/png`或`text/plain`。
    // 你也可以使用通配符,例如`image/*`,它匹配任何拖放的图像内容。
    dropMimeTypes: ['image/*']
  }
);

这个dropMimeTypes数组可以帮助提高性能,因为您的提供者仅会针对相关的已删除内容被调用。

工程

Electron 22 更新

在这一里程碑中,我们已经完成了使用自定义分配器为扩展主机的实验,并准备将Electron 22捆绑到VS Code桌面版中。我们想感谢所有参与Insiders builds并提供早期反馈的人。此更新包含Chromium 108.0.5359.215和 Node.js16.17.1输入:.

VS Code 日

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

谢谢

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

问题跟踪

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

拉取请求

贡献于Visual Studio Code输入:

贡献于vscode-js调试输入:

贡献于vscode-json-languageservice输入:

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

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

贡献于开发容器/Commands行界面输入: