在 VS Code 中试试吧!

2024 年 4 月 (版本 1.89)

更新 1.89.1:本次更新解决了这些问题

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


欢迎来到 Visual Studio Code 2024 年 4 月发布版本。此版本中有许多您可能会喜欢的新功能,一些主要亮点包括

如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新页面。内测版本 (Insiders):想尽快尝试新功能吗?您可以下载每晚更新的内测版本 (Insiders) 构建版本,并在最新更新发布后立即试用。

辅助功能

进度辅助功能信号

设置 accessibility.signals.progress 使屏幕阅读器用户能够听到用户界面中任何进度条的进度。信号会在三秒后播放,然后每五秒循环一次,直到进度条完成。可能播放信号的例子包括:搜索工作区时、等待聊天响应时、运行笔记本单元格时等等。

改进的编辑器辅助功能信号

现在,当行存在错误或警告时,或者当光标位于错误或警告处时,会有单独的辅助功能信号。

我们支持分别自定义在编辑器中行和列之间导航时辅助功能信号的延迟。此外,aria 警报信号在播放之前比音频提示信号的延迟更高。

当建议控件显示时,内联建议不再触发辅助功能信号。

辅助功能视图

辅助功能视图(⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2))使屏幕阅读器用户能够检查工作台功能。

终端改进

现在,当您在终端辅助功能视图中导航到下一个(⌥↓ (Windows, Linux Alt+Down))或上一个(⌥↑ (Windows, Linux Alt+Up))命令时,您可以听到当前命令是否失败。可以通过设置 accessibility.signals.terminalCommandFailed 来切换此功能。

当从启用了 shell 集成的终端打开此视图时,VS Code 会通过终端命令行发出警报,从而提供更好的体验。

聊天代码块导航

当您在聊天响应的辅助功能视图中时,现在可以在下一个(⌥⌘PageDown (Windows, Linux Ctrl+Alt+PageDown))和上一个(⌥⌘PageUp (Windows, Linux Ctrl+Alt+PageUp))代码块之间导航。

评论视图

当安装了提供评论的扩展且评论视图获得焦点时,您可以在辅助功能视图中检查和导航视图中的评论。辅助功能视图中也可以执行扩展提供的评论上的可用操作。

工作台

语言模型使用情况报告

对于使用语言模型的扩展,您现在可以在扩展编辑器和运行时扩展编辑器中跟踪它们的语言模型使用情况。例如,您可以查看语言模型请求的数量,如下面的屏幕截图所示的 Copilot Chat 扩展。

Screenshot of the Runtime Status for the Copilot Chat extension, showing the number of language model requests.

本地工作区扩展

本地工作区扩展在 VS Code 1.88 版本中首次引入,现已正式发布。您现在可以直接在工作区中包含一个扩展,并仅为该工作区安装它。此功能旨在满足您特定的工作区需求,并提供更量身定制的开发体验。

要使用此功能,您需要将扩展放在工作区内的 .vscode/extensions 文件夹中。然后 VS Code 会在扩展视图的工作区推荐部分显示此扩展,用户可以从那里安装它。VS Code 仅为此工作区安装此扩展。本地工作区扩展需要用户在安装和运行此扩展之前信任该工作区。

例如,考虑 VS Code 仓库中的 vscode-selfhost-test-provider 扩展。此扩展提供了测试功能,使贡献者可以直接在工作区中查看和运行测试。下面的屏幕截图显示了扩展视图的工作区推荐部分中的 vscode-selfhost-test-provider 扩展及其安装能力。

Screenshot showing a local workspace extension available in the .vscode folder in the Explorer view.

请注意,您应将解压后的扩展包含在 .vscode/extensions 文件夹中,而不是 VSIX 文件。您也可以仅包含扩展的源代码,并将其作为工作区设置的一部分进行构建。

快速打开中的自定义编辑器标签

上个月,我们引入了自定义标签,它允许您个性化编辑器标签的标签。此功能旨在帮助您更轻松地区分同名文件的标签,例如 index.tsx 文件。

在此基础上,我们将自定义标签的使用扩展到快速打开(⌘P (Windows, Linux Ctrl+P))。现在,您可以使用创建的自定义标签搜索文件,使文件导航更加直观。

Screenshot showing the use of custom labels in Quick Open to distinguish between multiple 'index.jsx' files.

自定义键绑定

我们使自定义用户界面操作的键绑定变得更加简单。右键单击工作台中的任何操作项,然后选择自定义键绑定。如果操作具有 when 子句,则会自动包含它,从而更容易按照您需要的方式设置键绑定。

树状视图中的查找键绑定

我们解决了一个问题,即查找控件经常意外地为树状控件打开。例如,查找控件出现在资源管理器视图中,而不是在编辑器中搜索时。

为了减少这些意外激活,我们将树状控件中打开查找控件的默认键绑定更改为 ⌥⌘F (Windows, Linux Ctrl+Alt+F)。如果您更喜欢以前的设置,可以使用键盘快捷方式编辑器轻松恢复 list.find 命令的原始键绑定。

自动检测系统颜色模式改进

如果您希望主题跟随系统的颜色模式,可以通过启用设置 window.autoDetectColorScheme 来实现。

启用后,深色模式下的当前主题由 workbench.preferredDarkColorTheme 设置定义,浅色模式下的当前主题由 workbench.preferredLightColorTheme 设置定义。

在这种情况下,将不再考虑 workbench.colorTheme 设置。仅当 window.autoDetectColorScheme 关闭时才使用它。

在此里程碑中,新变化是主题选择器对话框(首选项:颜色主题命令)现在能够感知系统颜色模式。请注意,当系统处于深色模式时,主题选择如何仅显示深色主题

Screenshot showing the theme selection dialog configuring the theme for Dark mode.

该对话框还有一个新按钮,可以直接带您进入 window.autoDetectColorScheme 设置

Screenshot showing the theme selection dialog, highlighting the button to configure the autoDetectColorScheme setting.

在评论控件的输入编辑器中,粘贴链接的行为与在 Markdown 文件中粘贴链接的行为相同。会显示粘贴选项,您可以选择粘贴 Markdown 链接而不是复制的原始链接。

Screenshot of Comments control, showing the paste link context menu.

源代码管理

切换分支时保存/恢复打开的编辑器

在此里程碑中,我们解决了长期存在的功能请求,即在源代码管理分支之间切换时保存和恢复编辑器。使用 scm.workingSets.enabled 设置启用此功能。

首次切换到分支时,可以使用 scm.workingSets.default 设置控制打开的编辑器。您可以选择没有打开的编辑器(empty),或使用当前打开的编辑器(current,默认值)。

用于查看更改的专用命令

为了更容易地在多文件差异编辑器中查看特定类型的更改,我们在命令面板中添加了一组新命令:Git: 查看暂存更改Git: 查看更改Git: 查看未跟踪更改

笔记本

最小化错误渲染器

您可以使用设置 notebook.output.minimalErrorRendering 为笔记本错误渲染器使用新的布局。此新布局仅显示错误和消息,以及一个用于展开完整错误堆栈以供查看的控件。

为大型笔记本禁用备份

现在已为大型笔记本文件禁用定期文件备份,以减少将文件写入磁盘花费的时间。可以通过设置 notebook.backup.sizeLimit 调整限制。我们还在尝试一个选项,通过 notebook.experimental.remoteSave 设置避免在保存笔记本文件时阻塞渲染器,以便自动保存可以在不影响性能的情况下进行。

大纲/粘性滚动性能回归修复

在过去几个月里,我们收到了关于笔记本编辑器性能回归的反馈。这些回归问题难以查明且不易重现。感谢社区持续提供日志和反馈,我们能够确定这些回归问题是由于我们在大纲和粘性滚动功能中添加新功能造成的。这些问题已在此版本中修复。

我们感谢社区的反馈和耐心,我们将继续改进笔记本编辑器的性能。如果您继续遇到性能问题,请随时在 VS Code 仓库中提交新问题。

快速搜索使您能够快速在工作区文件中执行文本搜索。快速搜索不再是实验性功能,所以请在命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中使用 搜索:快速搜索 命令试用一下吧!✨🔍

主题:Night Owl Light(在 vscode.dev 上预览)

请注意,所有快速搜索命令和设置在其标识符中不再包含“experimental”关键字。例如,命令 ID workbench.action.experimental.quickTextSearch 变成了 workbench.action.quickTextSearch。如果您有使用这些旧 ID 的设置或键绑定,这可能会有所影响。

搜索树递归展开

我们新增了一个上下文菜单选项,使您能够在搜索树中递归打开选定的树节点。

主题:Night Owl Light(在 vscode.dev 上预览)

终端

默认启用 Git Bash Shell 集成

Git Bash 的 Shell 集成现在自动启用。这为 Git Bash 带来了许多功能,例如命令导航粘性滚动快速修复等等。

配置鼠标中键粘贴

在大多数 Linux 发行版上,鼠标中键粘贴选定的内容。现在可以通过将 terminal.integrated.middleClickBehavior 配置为 paste 来在其他操作系统上启用类似的行为,这将通过鼠标中键粘贴常规剪贴板内容。

通过 OSC 8 转义序列创建的 ANSI 超链接以前仅支持 httphttps 协议,现在可以与任何协议配合使用。出于安全原因,默认情况下仅激活带有 filehttphttpsmailtovscodevscode-insiders 协议的链接,但您可以通过 terminal.integrated.allowedLinkSchemes 设置添加更多协议。

终端的新图标选择器

从终端选项卡上下文菜单中选择更改图标现在会打开为配置文件构建的新图标选择器

Screenshot showing the new icon picker shows a preview and the id of the icon as well as a filter box

主题:Sapphire(在 vscode.dev 上预览)

支持报告窗口大小

终端现在响应以下转义序列请求

  • CSI 14 t 报告终端的窗口大小(像素)
  • CSI 16 t 报告终端的单元格大小(像素)
  • CSI 18 t 报告终端的窗口大小(字符)

⚠️ Canvas 渲染器已废弃

终端具有三种不同的渲染器:DOM 渲染器、WebGL 渲染器和 canvas 渲染器。我们一直想移除 canvas 渲染器,但由于 DOM 渲染器的性能无法接受以及 WebKit 没有实现 webgl2 而受阻。这两个问题现在都已解决!

在此版本中,我们从回退链中移除了 canvas 渲染器,因此只有当 terminal.integrated.gpuAcceleration 设置明确设置为 "canvas" 时,它才会被启用。我们计划在下个版本中完全移除 canvas 渲染器。如果将 terminal.integrated.gpuAcceleration 设置为 "on""off" 时遇到问题,请告知我们。

调试

JavaScript 调试器

JavaScript 调试器现在会在 runtimeExecutable 配置中自动查找出现在 node_modules/.bin 文件夹中的二进制文件。现在,它会自动按名称解析它们。

请注意,在下面的示例中,您可以直接引用 mocha,而无需指定二进制文件的完整路径。

{
	"name": "Run Tests",
	"type": "node",
	"request": "launch",
-	"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/mocha",
-	"windows": {
-		"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/mocha.cmd"
-	},
+	"runtimeExecutable": "mocha",
}

语言

Markdown 路径补全中的图片预览

VS Code 内置的 Markdown 工具为 Markdown 中的链接和图片提供路径补全。补全图片或视频文件路径时,我们现在直接在补全详情中显示一个小预览。这可以帮助您更轻松地找到所需的图片或视频。

Screenshot showing a preview of an image in Markdown path completions

悬停预览 Markdown 中的图片和视频

想快速预览 Markdown 中的图片或视频,而不打开完整的Markdown 预览吗?现在您可以将鼠标悬停在图片或视频路径上查看其小预览

Screenshot showing hovering over an image's path to preview it

改进的 Markdown 标题重命名

您知道 VS Code 内置的 Markdown 支持允许您使用 F2 重命名标题吗?这很有用,因为它还会自动更新所有指向该标题的链接。本次迭代中,我们改进了在 Markdown 文件中存在重复标题情况下的重命名处理。

考虑以下 Markdown 文件

# Readme
- [Example 1](#_example)
- [Example 2](#_example-1)

## Example
...

## Example
...

两个 ## Example 标题文本相同,但可以使用唯一的 ID(#example#example-1)分别链接到它们。以前,如果您将第一个 ## Example 标题重命名为 ## First Example,则 #example 链接会正确更改为 #first-example,但 #example-1 链接不会更改。然而,重命名后 #example-1 不再是有效链接,因为不再有重复的 ## Example 标题。

我们现在正确处理这种情况。例如,如果您在上面的文档中将第一个 ## Example 标题重命名为 ## First Example,新文档将是

# Readme
- [Example 1](#_first-example)
- [Example 2](#_example)

## First Example
...

## Example
...

请注意,两个链接现在都已自动更新,因此它们都保持有效!

远程开发

远程开发扩展允许您使用开发容器 (Dev Container)、通过 SSH 连接的远程计算机或远程隧道 (Remote Tunnels),或者适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。

亮点包括

  • 通过 SSH 连接到 WSL

您可以在远程开发发行说明中了解有关这些功能的更多信息。

对扩展的贡献

GitHub Copilot

终端内联聊天

终端内联聊天现在是终端中的默认体验。当终端获得焦点时,使用键盘快捷方式 ⌘I (Windows, Linux Ctrl+I) 调出它。

Screenshot showing opening terminal inline chat opens and focuses an input box similar to inline chat in the editor

终端内联聊天使用 @terminal 聊天参与者,它具有关于集成终端 shell 及其内容的上下文信息。

Screenshot showing that you can ask complex questions like "list the top 5 largest files in the src dir"

建议命令后,使用 ⌘Enter (Windows, Linux Ctrl+Enter) 在终端中运行该命令,或使用 ⌥Enter (Windows, Linux Alt+Enter) 将该命令插入终端。命令也可以在运行之前直接在 Copilot 的响应中编辑(目前 Windows 和 Linux 上为 Ctrl+down, Tab, Tab,macOS 上为 Cmd+down, Tab, Tab)。

Screenshot showing that complex queries are OS and shell-specific

Copilot 驱动的重命名建议按钮

现在可以使用重命名控件中的闪光图标触发 Copilot 驱动的重命名建议。

内容排除

所有 Copilot for Business 和 Copilot Enterprise 客户现在都可以在 Copilot Chat 中使用 GitHub Copilot 内容排除功能。有关配置内容排除的信息,请参阅 GitHub 文档

当文件被内容排除时,Copilot Chat 无法看到该文件的内容或路径,并且不会用于生成 LLM 建议。

Screenshot showing a file which has been excluded in panel chat, displaying a warning about decreased suggestion quality

Screenshot showing a file which has been excluded in inline chat, showing an error that inline chat cannot be used

预览:在笔记本编辑器中生成

我们现在支持在笔记本编辑器中插入自动激活内联聊天的新单元格。当 notebook.experimental.generate 设置为 true 时,我们在笔记本工具栏和单元格之间的插入工具栏上显示一个生成按钮。当焦点位于笔记本列表或单元格容器上时,也可以通过在 macOS 上按下 Cmd+I(或在 Windows/Linux 上按下 Ctrl+I)来触发。此功能有助于简化借助语言模型在新单元格中生成代码的过程。

Python

“实现所有继承的抽象类”代码操作

使用 Pylance 时,处理抽象类现在变得更容易了。定义继承自抽象类的新类时,您现在可以使用实现所有继承的抽象类代码操作来自动实现父类的所有抽象方法和属性

主题:Catppuccin Macchiato(在 vscode.dev 上预览)

新的自动缩进设置

以前,Pylance 的自动缩进行为通过 editor.formatOnType 设置控制,如果您想禁用自动缩进,但使用其他支持的工具启用键入时格式化,这会产生问题。为了解决这个问题,Pylance 有自己的设置来控制其自动缩进行为:python.analysis.autoIndent,此设置默认启用。

Screenshot showing Python Analysis Auto Indent setting to control auto indentation with Pylance

Debugpy 已从 Python 扩展中移除,转而使用 Python 调试器扩展

现在调试功能由 Python 调试器扩展处理,我们已将 debugpy 从 Python 扩展中移除。

作为此更改的一部分,launch.json 文件中指定的 "type": "python""type": "debugpy" 都将引用 Python 调试器扩展的路径,无需更改您的 launch.json 文件即可有效运行和调试。今后,我们建议使用 "type": "debugpy",因为它直接对应于 Python 调试器扩展。

现在可以在测试期间禁用 Socket

您现在可以在 Python Testing Rewrite 的测试 UI 中运行禁用 Socket 的测试。这是通过将 Python 扩展与测试运行子进程之间的通信切换为使用命名管道来实现的。

修复了小型测试 bug

测试视图现在能够正确显示使用 testscenarios 的项目以及嵌套类中的 unittest 和参数化测试。此外,测试资源管理器现在能够处理带有符号链接的工作区中的测试,特别是符号链接路径的子级工作区根目录,这在 WSL 场景中特别有用。

Pylance 性能改进

Pylance 团队收到了关于 Pylance 在过去几个版本中性能下降的反馈。我们在内存消耗和索引性能方面进行了一些小改进,以解决各种报告的问题。然而,对于可能仍然遇到 Pylance 性能问题的用户,我们恳请您通过命令面板中的Pylance: 报告问题命令提交问题,最好附带日志、代码示例和/或工作环境中安装的包。

十六进制编辑器

十六进制编辑器现在具有插入模式,此外还有其长期存在的“替换”模式。插入模式允许在文件中以及文件末尾添加新字节,可以使用 Insert 键或通过状态栏切换。

十六进制编辑器现在还在状态栏中显示当前悬停的字节。

GitHub 拉取请求

GitHub 拉取请求扩展取得了更多进展,该扩展使您能够处理、创建和管理拉取请求和问题。新功能包括

  • 当通过隐藏设置 "githubPullRequests.experimentalUpdateBranchWithGitHub": true 启用时,可对未检出的 PR 进行实验性冲突解决。此功能使您无需在本地检出分支即可解决 PR 中的冲突。此功能仍处于实验阶段,并非在所有情况下都有效。
  • 当从拉取请求和问题视图触发打开辅助功能帮助时,会显示一个辅助功能帮助对话框。
  • 当空间足够时,所有评审操作按钮都会在活动拉取请求侧边栏视图中显示。

查阅该扩展 0.88.0 版本的更新日志,了解其他亮点。

TypeScript

文件监视由 VS Code 核心处理

新的实验性设置 typescript.tsserver.experimental.useVsCodeWatcher 控制 TS 扩展是否使用 VS Code 的核心文件监视支持来满足文件监视需求。TS 大量使用文件监视,通常使用其自己的基于 node.js 的实现。通过使用 VS Code 的文件监视器,监视应该更高效、更可靠,并消耗更少的资源。我们计划在五月逐步向用户启用此功能并监控回归问题。

预览功能

VS Code 原生 PowerShell 智能提示

我们已经在终端中为 PowerShell 智能提示提供了一个原型一段时间了,直到最近才投入更多时间进行完善。它看起来像这样

目前,它在输入 - 字符或按下 ctrl+space 时触发。要启用此功能,请在 settings.json 文件中设置 "terminal.integrated.shellIntegration.suggestEnabled": true(目前不会显示在设置 UI 中)。

此功能尚处于早期阶段,但我们很想听听您对此的反馈。我们为此计划的一些重要改进包括使其触发更可靠(#211222),无论弹出窗口在哪里触发都能使建议更一致(#211364),以及使其体验尽可能接近编辑器智能提示体验(#211076, #211194)。

假设您正在编写一些 Markdown 文档,并且意识到文档中的某个部分实际上属于其他地方。因此,您将其复制并粘贴到另一个文件中。一切都很好,对吧?但是,如果复制的文本包含任何相对路径链接、引用链接或图片,那么这些链接现在很可能会失效,您将不得不手动修复它们。这可能很令人头痛,但幸运的是,新的“粘贴时更新链接”功能可以提供帮助!

要启用此功能,只需设置 "markdown.experimental.updateLinksOnPaste": true。启用后,当您在当前编辑器中的 Markdown 文件之间复制和粘贴文本时,VS Code 会自动修复所有相对路径链接、引用链接以及所有使用相对路径的图片/视频。

粘贴后,如果您发现您想要插入的是复制的原文,可以使用粘贴控件切换回正常的复制/粘贴行为。

支持 TypeScript 5.5

我们现在支持 TypeScript 5.5 Beta 版。有关此版本的详细信息,请查看 TypeScript 5.5 Beta 版博客文章迭代计划

编辑器亮点包括

  • 正则表达式的语法检查。
  • 文件监视改进。

要开始使用 TypeScript 5.5 Beta 版,请安装 TypeScript Nightly 扩展。如果您在使用 TypeScript 5.5 时遇到任何 bug,请分享反馈并告知我们。

API

改进了对注释输入编辑器中语言功能的支持

在编写新注释时,VS Code 会创建一个精简的文本编辑器,其背后与 VS Code 中的主编辑器一样,由一个 TextDocument 支持。在此迭代中,我们为这些注释文本编辑器启用了一些额外的 API 功能。这包括

  • 支持工作区编辑。
  • 支持诊断。
  • 支持粘贴为(paste-as)提议的 API。

注释文本文档可以通过具有 comment 方案的 URI 来标识。

我们期待看到扩展如何利用这一新功能进行构建!

窗体活动 API 最终定稿

窗体活动 API 已最终定稿。该 API 提供了一个简单的额外 WindowState.active 布尔值,扩展可以使用它来判断窗体最近是否被交互过。

vscode.window.onDidChangeWindowState(e => console.log('Is the user active?', e.active));

提议的 API

视图的辅助功能帮助对话框

可以通过 accessibilityHelpContent 属性为任何由扩展贡献的视图添加辅助功能帮助对话框。当焦点位于视图中时,屏幕阅读器用户会听到打开对话框的提示(⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1)),其中包含概述和有用的命令。

此 API 已被 GitHub Pull Request 扩展的 Issues 和 PR 视图使用。

语言模型和聊天 API

语言模型命名空间 (vscode.lm) 导出了用于检索语言模型信息和计算给定字符串的 token 数量的新函数。它们分别是 getLanguageModelInformationcomputeTokenLength。您应该使用这些函数来构建在语言模型限制范围内的提示。

注意:内联聊天现在由即将推出的聊天参与者 API 提供支持。这也意味着 registerInteractiveEditorSessionProvider 已弃用,很快就会被移除。

更新的文档粘贴提案

我们持续迭代 文档粘贴提议的 API。该 API 使扩展能够挂接到文本文档中的复制/粘贴操作。

API 的显著变化包括

  • 新增了 resolveDocumentPasteEdit 方法,该方法在粘贴操作时填充编辑。如果计算编辑耗时较长,则应使用此方法,因为它仅在实际需要应用粘贴编辑时才被调用。

  • 所有粘贴操作现在都通过 DocumentDropOrPasteEditKind 进行标识。这与现有的 CodeActionKind 非常相似,并用于粘贴操作的键绑定和设置。

文档粘贴扩展示例包含了所有最新的 API 更改,您可以在此测试 API。请务必分享对更改和整体 API 设计的反馈。

悬停详细级别

在此迭代中,我们新增了一个用于收缩/展开悬停的提议 API,名为 editorHoverVerbosityLevel。它引入了一个名为 VerboseHover 的新类型,该类型有两个布尔字段:canIncreaseHoverVerbositycanDecreaseHoverVerbosity,它们表示悬停的详细级别可以增加或减少。如果其中一个设置为 true,则悬停会显示带有 +- 图标,可用于增加/减少悬停的详细级别。

提议的 API 还引入了 provideHover 方法的新签名,该签名接受一个类型为 HoverContext 的附加参数。当用户发送悬停详细级别请求时,悬停上下文会填充先前的悬停以及一个 HoverVerbosityAction,后者指示用户是希望增加还是减少详细级别。

扩展触发的 TestRun 上的 preserveFocus

对于由扩展触发的测试运行请求,有一个关于 preserveFocus 布尔值的提案。以前,从扩展 API 触发的测试运行不会导致焦点移动到测试结果视图,这要求某些扩展重新发明轮子以保持用户体验的兼容性。现在可以在 TestRunRequest 上设置此新选项,以要求编辑器移动焦点,就好像运行是从编辑器内部触发的一样。

重要修复

  • 209917 辅助窗体:恢复最大化状态 (Linux, Windows)

致谢

最后但同样重要的是,对 VS Code 的贡献者们表示衷心的感谢

问题跟踪

对我们问题跟踪的贡献

拉取请求

vscode 的贡献

vscode-css-languageservice 的贡献

vscode-emmet-helper 的贡献

vscode-eslint 的贡献

vscode-hexeditor 的贡献

vscode-json-languageservice 的贡献

vscode-languageserver-node 的贡献

vscode-python-debugger 的贡献

vscode-vsce 的贡献

language-server-protocol 的贡献

monaco-editor 的贡献