参加你附近的 ,了解 VS Code 中的 AI 辅助开发。

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

最小错误渲染器

您可以使用设置 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
...

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

我们现在正确处理此场景。例如,如果您将上面文档中的第一个 ## 示例 标题重命名为 ## 第一个示例,则新文档将是

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

## First Example
...

## Example
...

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

远程开发

远程开发扩展允许您通过 SSH 或远程隧道使用开发容器、远程机器或适用于 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 驱动的重命名建议现在可以通过重命名控件中的闪光图标触发。

内容排除

GitHub Copilot 内容排除现在在 Copilot Chat 中支持所有 Copilot for Business 和 Copilot Enterprise 客户。有关配置内容排除的信息可以在 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 Debugger 扩展

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

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

现在在测试期间可以禁用套接字

您现在可以通过 Python 测试重写上的测试 UI 运行禁用套接字的测试。这是通过 Python 扩展和测试运行子进程之间通信切换到现在使用命名管道来实现的。

已更新次要测试错误

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

Pylance 的性能改进

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

十六进制编辑器

十六进制编辑器现在除了长期存在的“替换”模式外,还具有“插入”模式。插入模式允许在文件内部和末尾添加新字节,并且可以使用 Insert 键或从状态栏进行切换。

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

GitHub 拉取请求

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

  • 当通过隐藏设置 "githubPullRequests.experimentalUpdateBranchWithGitHub": true 启用时,非检出 PR 的实验性冲突解决方案可用。此功能允许您在不本地检出分支的情况下解决 PR 中的冲突。该功能仍处于实验阶段,并非适用于所有情况。
  • 当从 Pull Requests 和 Issues 视图触发打开辅助功能帮助时,会显示一个辅助功能帮助对话框。
  • 当有足够的空间时,所有审查操作按钮都会显示在活动 Pull Request 侧边栏视图中。

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

TypeScript

文件监视由 VS Code 核心处理

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

预览功能

VS Code 原生 PowerShell 智能感知

我们已经在终端中实现 PowerShell 智能感知的原型有一段时间了,最近我们投入了更多时间进行完善。它看起来是这样的

目前,它在 - 字符或按下 Ctrl+空格键时触发。要启用此功能,请在您的 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 测试版。请查看 TypeScript 5.5 测试版博客文章迭代计划,了解此版本的详细信息。

编辑器亮点包括

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

要开始使用 TypeScript 5.5 测试版,请安装 TypeScript Nightly 扩展。请分享反馈,并让我们知道您在使用 TypeScript 5.5 时是否遇到任何错误。

API

改进了评论输入编辑器中的语言功能支持

在编写新评论时,VS Code 会创建一个精简的文本编辑器,该编辑器由 TextDocument 提供支持,就像 VS Code 中的主编辑器一样。本次迭代中,我们在此评论文本编辑器中启用了额外的 API 功能。这包括

  • 支持工作区编辑。
  • 支持诊断。
  • 支持粘贴为建议 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) 导出了用于检索语言模型信息和计算给定字符串的令牌计数的新函数。它们分别是 getLanguageModelInformationcomputeTokenLength。您应该使用这些函数来构建在语言模型限制范围内的提示。

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

更新的文档粘贴提案

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

API 的显著变化包括

  • 一个新的 resolveDocumentPasteEdit 方法,用于在粘贴操作时填充编辑。如果计算编辑需要很长时间,则应使用此方法,因为它仅在实际需要应用粘贴编辑时才调用。

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

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

悬停详细程度

本次迭代中,我们添加了一个新的提案 API 来折叠/展开悬停,名为 editorHoverVerbosityLevel。它引入了一种名为 VerboseHover 的新类型,该类型具有两个布尔字段:canIncreaseHoverVerbositycanDecreaseHoverVerbosity,它们指示悬停详细程度是否可以增加或减少。如果其中一个设置为 true,则悬停将显示带有 +- 图标,可用于增加/减少悬停详细程度。

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

在扩展触发的 TestRuns 上 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 的贡献