🚀 在 VS Code 中

2020 年 4 月(版本 1.45)

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

下载:Windows:x64 | Mac:Intel | Linux:deb rpm tarball snap


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

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

Insiders: 想尽快试用新功能吗?您可以下载每晚构建的 Insiders 版本,并在最新更新可用时立即试用。有关最新的 Visual Studio Code 新闻、更新和内容,请在 Twitter 上关注我们 @code

辅助功能

在本里程碑中,我们收到了社区的宝贵反馈,这帮助我们识别并解决了许多 辅助功能问题

  • 我们引入了 聚焦下一个部分 (F6) 和 聚焦上一个部分 (⇧F6 (Windows, Linux Shift+F6)) 命令,以便轻松地在工作台中导航。
  • 状态栏现在可访问,并且在聚焦时,屏幕阅读器可以读取其内容。
  • 在工作台中的每个列表和小部件树中引入了适当的 ARIA 标签,例如“打开的编辑器”、“面包屑”、“问题”视图等。

我们团队的首要任务之一是使 Visual Studio Code 成为更易于访问的产品,并改善每位用户的体验,因此我们创建了一个 新的 Gitter 频道,用于 VS Code 辅助功能。我们鼓励用户加入并提供反馈、提出问题并分享辅助功能实践。

工作台

使用鼠标滚轮切换标签页

当您使用鼠标滚轮在编辑器标签页上滚动时,您目前无法切换标签页,只能显示在视图之外的标签页。现在,通过新的设置 workbench.editor.scrollToSwitchTabs,您可以更改行为以切换活动编辑器标签页。

如下所示,当光标焦点在编辑器标签页区域时,如果用户滚动鼠标滚轮,则活动编辑器会更改。

Changing editor tabs using the mouse wheel

注意: 您也可以在滚动时按住 Shift 键以获得相反的行为(例如,即使 scrollToSwitchTabs 设置关闭,您也可以切换编辑器标签页)。

自定义窗口标题分隔符

新的设置 window.titleSeparator 允许您更改窗口标题中使用的分隔符字符。默认情况下,使用短划线 '-'

Window title separator using dash

更新了默认主题的侧边栏部分标题

我们更新了默认深色和浅色主题的侧边栏部分标题的样式。我们现在对每个标题使用透明背景并显示边框。

在下面,“打开的编辑器”部分标题没有背景颜色,而“VSCODE”和“大纲”标题具有上边框。

Side Bar section headers

编辑器

更快的语法突出显示

VS Code 中的语法突出显示通过 解释 Text Mate 语法来运行。这些语法使用正则表达式编写,可以使用 oniguruma 正则表达式库进行评估。到目前为止,我们一直在使用两个不同的库来评估此类正则表达式,一个用于 VS Code 桌面(本机节点模块),另一个用于浏览器中的 VS Code(Web Assembly 二进制文件)。

我们现在编写了一个专用的 Web Assembly 绑定,该绑定针对我们的 TextMate 解释器的使用进行了优化。通过避免内部循环中的内存分配并采用几个月前添加到 oniguruma 的新 API,我们已经能够创建一个比以前的方法更快的变体,并为突出显示常规编程文件提供高达 3 倍的性能提升。您可以查看 拉取请求 #95958 以了解更多详细信息和测量结果。

语义标记样式

您现在可以在用户设置中自定义语义主题规则。语义着色可用于 TypeScript 和 JavaScript,对 Java 和 C++ 的支持正在开发中。默认情况下,内置主题已启用它,并且主题扩展正在采用它。

editor.semanticTokenColorCustomizations 设置允许用户覆盖默认主题规则并自定义主题。

Semantic token color customization

上面的设置更改了 默认深色+ 主题。它为参数赋予了新的样式(斜体和新颜色),并为默认库中的所有符号(例如,PromiseMap 及其属性)添加了下划线。

下面的示例将语义样式添加到所有主题

"editor.semanticTokenColorCustomizations": {
    "enabled": true, // enable semantic highlighting for all themes
    "rules": {
        // different color for all constants
        "property.readonly": "#35166d",

        // make all symbol declarations bold
        "*.declaration": { "bold": true }
    }
}

有关语义标记的主题设置在 语义突出显示指南中进行了更详细的说明。

默认深色+ 主题中常数的新颜色

默认深色+ 和默认浅色+ 主题现在以与可写变量不同的阴影为常数着色。

请注意,下面的 htmlModerange 常数的颜色与 result 变量的颜色不同。

默认深色+ 主题

Constant color in the Dark+ theme

默认浅色+ 主题

Constant color in the Light+ theme

禁用持久撤消

上一个里程碑,更改了撤消/重做堆栈,以便在您关闭文件并重新打开文件时持久保存。并非所有人都想要这个新功能,因此现在有一个设置 files.restoreUndoStack,用于禁用持久撤消。

集成终端

删除多个与提示相关的命令

以下命令已被删除:

  • workbench.action.terminal.deleteWordLeft
  • workbench.action.terminal.deleteWordRight
  • workbench.action.terminal.deleteToLineStart
  • workbench.action.terminal.moveToLineStart
  • workbench.action.terminal.moveToLineEnd

这些命令通过向终端发送特定的字符序列来工作,这只是基于终端使用的命令快捷键的最佳猜测。这些命令的问题在于它们是一个封闭的盒子,您需要逐字搜索 vscode 代码库才能弄清楚它们是如何工作的。它们已被 workbench.action.terminal.sendSequence 命令的自定义快捷键取代,该命令以通用方式执行相同的操作。

这些是高级键盘快捷键,无法通过“键盘快捷方式”UI 查看其全部内容,因为它们包含参数,但您可以通过运行 首选项:打开默认键盘快捷方式(JSON) 命令来查看其 JSON 定义。

Terminal sendSequence keybindings JSON

支持在 PowerShell 中粘贴多行文本

多行粘贴在 PowerShell 中一直无效,因为 VS Code 始终以与键入文本完全相同的方式发送文本。如上所述,一些快捷键已交换为使用 workbench.action.terminal.sendSequence 命令,您可能已经注意到仅为 Windows 添加了一个新的快捷键:

{ "key": "ctrl+v",                "command": "workbench.action.terminal.sendSequence",
                                     "when": "terminalFocus && !accessibilityModeEnabled && terminalShellType == 'pwsh'",
                                     "args": {"text":"\u0016"} },

这个新的快捷键会将代表 Ctrl+V 的文本直接发送到 PowerShell,PowerShell 会被 PSReadLine 接收并正确处理。

之前

Terminal paste error before

之后

Terminal paste correctly after

主题:Sapphire (Dim)

控制双击单词选择

新的 terminal.integrated.wordSeparators 设置允许您自定义在终端中双击时用于分隔单词的分隔符字符。

默认分隔符是

  "terminal.integrated.wordSeparators": " ()[]{}',\"`─"

调试

自动调试配置

在 VS Code 中设置调试可能是一项艰巨的任务,因为用户必须创建一个新的调试配置(或至少修改一个模板以满足他们的需求)。为了继续简化调试体验,我们添加了一个新功能,使调试扩展作者能够分析当前项目并自动提供高质量的调试配置,而无需额外的用户配置。

与提供构建任务的方式类似,自动调试配置在调试视图的配置下拉列表和 选择并开始调试 快速选择中,在相应的调试器(文件夹图标)下分组。选择调试器后,VS Code 会显示所有可用的自动配置。选择配置将启动新的调试会话。

以下屏幕截图显示了新 JavaScript 调试器(在预览中)和我们的教育性 Mock Debug 的功能

Automatic debug configurations

可以通过在 快速打开 (⌘P (Windows, Linux Ctrl+P)) 中键入“debug”(带空格)或触发 调试:选择并开始调试 命令来打开调试快速选择。

在下一个里程碑中,我们将添加 UI,以便可以将自动调试配置轻松添加到 launch.json 以进行进一步配置。

任务

禁用更快的快速选择

在 1.44 版本中,我们改进了在运行 任务:运行任务 命令时显示的任务选择器,方法是更改布局并使其更快。但是,更快的快速选择确实使任务选择器变为两层深,具体取决于您要运行的任务。如果您想要之前的 UI,您现在可以使用 task.quickOpen.showAll 设置禁用更快的选择器。

运行时保存

以前,在运行任务时总是保存所有未保存的编辑器。如果您不希望在运行任务时保存编辑器,您现在可以使用 task.saveBeforeRun 配置该行为。

语言

TypeScript 状态栏条目增强功能

当您专注于 TypeScript 文件时,VS Code 会在状态栏中显示当前的 TypeScript 版本

TypeScript version status bar entry

单击版本现在会弹出适用于当前 TypeScript 项目的命令

TypeScript project commands

提示用户切换到工作区版本的 TypeScript

新的 typescript.enablePromptUseWorkspaceTsdk 设置会弹出一个提示,询问用户是否要切换到工作区版本的 TypeScript

Prompt shown when opening a workspace with local TypeScript version

要启用提示,请将 "typescript.enablePromptUseWorkspaceTsdk": truetypescript.tsdk 作为项目的工作区设置包含在内。

Markdown 文件中的编辑器链接和 Markdown 预览中的链接现在可以指向文件夹。单击其中一个链接将在 VS Code 的文件资源管理器中显示目标文件夹。

源代码管理

GitHub 存储库的 GitHub 身份验证

VS Code 现在对 GitHub 存储库具有自动 GitHub 身份验证。您现在可以克隆、拉取、推送到公共和私有存储库,而无需在系统中配置任何凭据管理器。即使在集成终端中调用的 Git 命令(例如 git push)现在也会自动针对您的 GitHub 帐户进行身份验证。

您可以使用 git.githubAuthentication 设置禁用 GitHub 身份验证。您还可以使用 git.terminalAuthentication 设置禁用终端身份验证集成。

隐藏 Git 提交输入框

新的设置 git.showCommitInput 允许您隐藏 Git 存储库的提交输入框。

内联差异现在可编辑

您现在可以在快速差异编辑器中编辑,当预览文件中的更改时。

Editable inline diff

预览功能

预览功能尚未准备好发布,但功能已足够使用。我们欢迎您在它们开发过程中提供早期反馈。

设置同步

在过去的几个月中,我们一直在努力支持跨机器同步 VS Code 首选项,此功能可在 Insiders 版本上进行预览。

您现在可以使用您的 GitHub 帐户登录以同步您的 VS Code 首选项。

Settings Sync Sign in with GitHub

主题:GitHub Sharp with Customizations

现在还支持同步全局代码片段。

新的 JavaScript 调试器

本月,我们继续在新 JavaScript 调试器上取得进展。它默认安装在 Insiders 版本上,并且可以从 VS Code 稳定版的 Marketplace 中安装。您可以通过启用 debug.javascript.usePreview 设置,开始将其与您现有的启动配置一起使用。

以下是本月添加的一些新功能:

性能分析支持

您可以通过单击“调用堆栈”视图中的新 性能分析 按钮,或使用 调试:采集性能分析 命令,从您的 Node.js 或浏览器应用程序中捕获 CPU 性能分析。执行此操作后,您可以选择性能分析的运行时间:直到您停止它,持续一段时间,或直到您遇到另一个断点。

性能分析结束后,它将保存在您的工作区文件夹中,并在 VS Code 中打开。如果您正在运行我们的稳定版本,您需要安装我们的 可视化扩展 才能查看它。在 Insiders 版本上,该扩展已内置。当您打开性能分析时,CodeLens 会添加到您的文件中,其中包含函数级别和某些“热”行的性能信息。与在许多其他工具中捕获的性能分析不同,记录的性能分析是源地图感知的。

Animation showing the process of taking a profile

主题:Earthsong,字体:Fira Code

自动附加集成

debug.javascript.usePreview 开启时,VS Code 的 自动附加 将使用 js-debug 提供的新方法,该方法允许所有终端的工作方式与调试终端类似。

相对于现有调试器,自动附加的改进:

  • 调试器会立即附加,使您能够在程序早期命中断点。
  • 子进程会自动调试。
  • 自动附加期间没有进程轮询开销。

从“变量”视图复制复杂值

以前,尝试从 VS Code 变量 视图复制复杂值(如对象)通常会导致数据截断或不完整。VS Code 和 js-debug 中的更改使我们能够复制完整的值。

Animation showing copying and pasting a very large array

产品图标主题

Visual Studio Code 包含一组内置图标,这些图标用于视图和编辑器,但也可以在悬停、状态栏和扩展中使用。这些图标是 产品图标,而不是 文件图标,文件图标显示在整个 UI 中文件名旁边。

VS Code 附带的产品图标包含在 Codicon 图标字体 中,并用于 默认 产品图标主题。扩展现在可以提供新的产品图标主题,以重新定义这些图标并为 VS Code 提供新的外观。

Custom product icon themes

产品图标主题 文档包含更多详细信息,并且有一个 产品图标主题示例

跨所有打开项目的 TypeScript/JavaScript 符号搜索

使用 TypeScript 3.9+ 时,VS Code 的 工作区符号搜索 现在默认包含来自所有打开的 JavaScript 和 TypeScript 项目的结果。我们以前只搜索当前活动文件的项目。

这由新的 "typescript.workspaceSymbols.scope" 设置控制。要恢复到旧的行为,请设置: "typescript.workspaceSymbols.scope": "currentProject"

终端中的链接已进行了全面改进,更换了后台系统,以实现更强大的实现,从而实现:

  • 使用编辑器的链接检测,以获得更好的 Web 和 file:// 链接检测。
  • 文件夹链接支持,在资源管理器中打开文件夹或打开新的 VS Code 窗口。
  • 不同链接类型的不同链接操作,回退到搜索工作区的“单词”链接(基于 terminal.integrated.wordSeparators 设置)。
  • 与编辑器类似的链接突出显示和悬停体验。

Terminal with various links

主题:Topaz (Dim)

已知问题列表在此查询中可用 在此查询中

动态视图图标和标题

在本里程碑中,我们继续致力于使布局更灵活。在工作台中移动视图允许您在活动栏中创建新图标或在面板中创建新标签页。为了更容易理解这些新创建的视图容器中包含的内容,我们更新了逻辑,使其更容易理解。

现在,当您拥有自定义容器时,我们将从第一个可见视图继承标题和图标。这将允许您通过重新排列视图来更改它。对于内置容器或来自扩展的容器,我们将尝试尽可能长时间地保留此图标。在下面,当一个新视图放置在视图容器的顶部时,其图标和标题会更新。

Dynamic icons and titles

最后,您现在可以一次移动自定义容器及其包含的所有视图。下面的短视频显示了将“终端”和“输出”视图组合拖动到活动栏中。

Moving whole View Containers

扩展的贡献

远程开发

继续开发 远程开发扩展,这些扩展允许您使用容器、远程计算机或 Windows Subsystem for Linux (WSL) 作为功能齐全的开发环境。

1.45 中的功能亮点包括:

  • 开发容器:提供容器配置建议。
  • 开发容器:WSL 2 Docker 和 Podman 引擎支持。
  • 开发容器:用于本地和容器文件夹的新 devcontainer.json 变量。

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

GitHub Pull Requests and Issues

以前称为“GitHub Pull Requests”,GitHub Pull Requests and Issues 扩展程序已经让您在 VS Code 中管理和审查 pull requests 一年多了。现在,该扩展程序已扩展为包括对 GitHub Issues 的支持。

Issue 支持包括:

  • #-引用的 issue 和 @-提及用户的悬停。
  • issue 和用户的内联完成建议。
  • 一个 Issues 视图,您可以在其中使用自定义查询。
  • 一个开始处理 issue 的操作,它会创建一个分支并填充提交消息。

还有新的存储库支持:

下面的短视频演示了发布到 GitHub 上的新私有存储库,可以选择在文件成功上传后在 GitHub 上浏览存储库。

Publish repository

有关更多信息,您可以阅读最近的 GitHub Issues 集成 博客文章和 使用 GitHub 文档。

GitHub Issue Notebook

VS Code 团队正在开发对 Notebook 的原生支持。目前最流行的 Notebook 是 Jupyter Notebook,在研究它们时,我们开始寻找构建无偏见且支持不同风格 Notebook 的 Notebook 解决方案的方法。

其中一个 Notebook 是 GitHub Issue Notebooks 扩展程序,它允许您管理 issue 和 pull request 搜索并内联呈现结果

GitHub Issue Notebook

此扩展程序仍在开发中,仅适用于 VS Code Insiders 版本,但借助它,您可以亲身体验 Notebook,并可以向我们提供反馈。

扩展创作

编辑器标签页的新主题颜色

添加了新颜色以进一步主题化工作台编辑器标签页:

  • tab.unfocusedInactiveBackground:未聚焦组中的非活动标签页背景颜色
  • tab.hoverForeground:悬停时的标签页前景色
  • tab.unfocusedHoverForeground:未聚焦组中悬停时的标签页前景色

编辑器标题边框的新主题颜色

现有颜色 editorGroupHeader.tabsBorder 已更改为在编辑器标签页下方但在面包屑上方渲染边框。新的颜色 editorGroupHeader.border 允许您在编辑器组标题下方(例如,如果启用面包屑,则在面包屑下方)渲染边框,以恢复 editorGroupHeader.tabsBorder 的先前行为。

弃用和存档 vscode NPM 模块

在 2019 年 6 月,鉴于 event-stream 事件,我们将 vscode 模块拆分为 @types/vscodevscode-test。今天,minimist 的安全警报已导致仍依赖于 vscode 的扩展程序出现安全警报,vscode 依赖于 mocha@5.2.0,因此依赖于 minimist@0.0.8。不幸的是,mocha@5.2.0 不再接收更新,升级到新的 mocha 版本会破坏现有功能。

我们发布了新版本的 vscode,其中删除了一些不必要的依赖项。我们还存档了 存储库 并弃用了 NPM 上的 vscode 模块。请迁移@types/vscodevscode-test

新的完成项种类

vscode.CompletionItemKind 中有两个新条目,分别代表 issue 和用户。例如,这些可以用于在添加 TODO 标签时建议用户名。

使用 URI

我们添加了一个 vscode.Uri.joinPath 实用程序。它是一个工厂函数,通过将路径段与现有 URI 连接来创建新的 URI。可以将其视为 Node.js 的 path.join 实用程序,但用于 URI。

对于扩展,VS Code 通过 Extension.extensionUriExtensionContext.extensionUri 公开扩展的安装 URI。借助 join 实用程序,您现在可以为扩展的资源创建 URI。

例如:

const fileUri = vscode.Uri.joinPath(context.extensionUri, './file.png');
const bytes = await vscode.workspace.fs.readFile(fileUri);

debug/callstack/context 菜单内联组

VS Code 现在支持对 debug/callstack/context 菜单 inline 组的贡献。贡献给此组的命令将在用户悬停在“调试会话”元素上时内联呈现在“调用堆栈”中。

Call Stack inline contribution

新的调试主题颜色

以下是用于设置“调试”视图样式的新颜色:

  • debugView.exceptionLabelForeground:当调试器在异常处中断时,在“调用堆栈”视图中显示的标签的前景色
  • debugView.exceptionLabelBackground:当调试器在异常处中断时,在“调用堆栈”视图中显示的标签的背景色
  • debugView.stateLabelForeground:在“调用堆栈”视图中显示当前会话或线程状态的标签的前景色
  • debugView.stateLabelBackground:在“调用堆栈”视图中显示当前会话或线程状态的标签的背景色
  • debugView.valueChangedHighlight:用于突出显示“调试”视图(例如,“变量”视图)中值更改的颜色
  • debugTokenExpression.name:在“调试”视图(例如,“变量”或“监视”视图)中显示的标记名称的前景色
  • debugTokenExpression.value:在“调试”视图中显示的标记值的前景色
  • debugTokenExpression.string:在“调试”视图中显示的字符串的前景色
  • debugTokenExpression.boolean:在“调试”视图中显示的布尔值的前景色
  • debugTokenExpression.number:在“调试”视图中显示的数字的前景色
  • debugTokenExpression.error:在“调试”视图中显示的表达式错误的前景色

源代码管理

打开资源命令的新 preserveFocus 参数

调用 SourceControlResourceState.command 命令时,将传递一个额外的 preserveFocus: boolean 参数,这使扩展作者可以提供更好的用户体验。

输入文本 mimetype

源代码管理输入文本现在具有专用的 mimetype:text/x-scm-input

控制输入框可见性

扩展现在可以使用 SourceControlInputBox.visible 属性控制每个存储库的源代码管理输入框的可见性。

Git

远程源提供程序

Git 扩展 API 现在允许其他扩展 提供远程源,以便参与 Git: 克隆 命令。

以下是 GitHub Pull Requests and Issues 扩展程序的示例:

Clone from GitHub

凭据提供程序

Git 扩展 API 已扩展,以便扩展程序可以 提供身份验证凭据,以便对工作台和集成终端中针对 HTTPS Git 存储库调用的 Git 命令进行身份验证。

SignatureInformation.activeParameter

SignatureInformation 上的新 activeParameter 属性允许您单独为每个签名指定活动参数。如果提供,这将覆盖顶级 SignatureHelp.activeParameter 属性。

EventEmitter 的严格 null 修复

在 VS Code 1.44 及更低版本中,EventEmitter.fire 的参数是可选的。

// Valid in VS Code 1.44
const emitter = new EventEmitter<number>();

emitter.event((x: number) => console.log(x));

// Calling fire with no argument was valid but resulted in the `x` above being `undefined`
emitter.fire();

这违反了严格的 null 值检查,但不会导致编译错误。

在 VS Code 1.45 中,现在的 fire 方法需要一个参数。如果您仍然希望能够在源代码中调用不带参数的 .fire(),请使用 new EventEmitter<void>

语言服务器协议

关于规范的 3.16 版本 的工作已经开始。第一步,调用层级支持移出了提议状态。请注意,3.16 规范尚未最终确定,并且可能会根据反馈进行更改。

建议的扩展 API

每个里程碑版本都会带来新的提议 API,扩展作者可以试用它们。与往常一样,我们渴望收到您的反馈。以下是您试用提议 API 需要做的:

  • 您必须使用 Insiders 版本,因为提议 API 经常更改。
  • 您必须在扩展的 package.json 文件中包含以下行:"enableProposedApi": true
  • 将最新版本的 vscode.proposed.d.ts 文件复制到您项目的源代码位置。

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

为终端环境做贡献

上个月引入了这个新的提议 API,以便扩展作者可以为终端环境做出贡献。本月主要是在该功能之上应用一些 UI 并对其进行完善。现在,当终端具有“过时”的环境时,会显示一个警告图标,该图标会显示一个丰富的悬停提示,解释将要发生的变化,并包含一个方便的重新启动终端操作。当更改处于活动状态时,还会显示一个信息图标,但默认情况下禁用该图标。

Terminal stale environment warning

动态提供调试配置

我们更新了调试扩展 API,为调试扩展作者提供了一种基于工作区或项目中找到的信息动态添加调试配置的方法。这些调试配置会显示在与 launch.json 中的静态调试配置相同的 UI 位置。

在此版本中,动态调试配置显示在“调试”视图的配置下拉列表中以及选择并启动调试快速选择中。在未来的版本中,我们正在考虑将它们也显示在“欢迎”视图中。

新的 API 基于现有 DebugConfigurationProviderprovideDebugConfigurations 方法。在此版本之前,VS Code 调用 provideDebugConfigurations 以提供初始“静态”调试配置,以便复制到新创建的 launch.json 中。使用新的 API,现在可以通过 vscode.debug.registerDebugConfigurationProvider 注册 DebugConfigurationProvider 以用于“动态”情况,方法是将值 DebugConfigurationProviderTriggerKind.Dynamic 传递给新的可选 triggerKind 参数。通过此新注册,当所有调试配置的列表即将显示在 UI 中时,VS Code 将调用 provideDebugConfigurations 方法。

为了及时激活使用此新 API 的扩展,引入了一个新的激活事件 onDebugDynamicConfigurations:<debug type><debug type> 是强制性的,表示指定动态调试配置的调试器类型。

在 Mock Debug 中可以找到一个用法示例

二进制自定义编辑器 API

我们在此迭代中花费了大量精力来重新设计二进制自定义编辑器的提议 API,以便为稳定化做准备。提醒一下,自定义编辑器允许扩展程序提供自己的编辑器用户界面,以替代 VS Code 的普通文本编辑器。我们已经稳定了对 基于文本文件的自定义编辑器 的支持。提议的 API 将自定义编辑器扩展到二进制文件格式,例如图像或十六进制转储。

A custom editor for binary files

我们希望收到您对此 API 的反馈,以便我们有望在下一次迭代中最终确定它。查看 自定义编辑器扩展示例,以查看二进制文件的自定义编辑器的示例实现。《自定义编辑器 API》文档现在也涵盖了二进制文件的自定义编辑器。

如果此 API 适合您,或者您在实现自定义编辑器时遇到任何问题,请告知我们

工程

原生迭代器

我们现在使用原生 ES6 迭代器来提高性能。您可以在 issue #94540 中找到更多详细信息。

编译守护程序

感谢 deemon 实用程序,我们现在将自托管编译任务作为后台进程运行:即使 VS Code 重新启动,它也会保持运行。

自动问题分类

为了继续将我们的问题分类流程转移到 GitHub Actions 的工作,我们创建了用于自动问题分类的 Actions。这些 Actions 的工作原理是自动下载我们的所有问题,并生成机器学习模型,以便按计划将问题分类到功能区域。我们所有 Actions 的完整实现都在我们的 GitHub Triage Actions 存储库中。

新文档

Docker Compose

有一个新的 Docker Compose 主题,解释了 Microsoft Docker 扩展 如何帮助您将 Docker Compose 文件添加到您的项目,以便轻松处理多个 Docker 容器。

Java 主题

Java 主题已更新,并包含关于使用 Java 扩展LintingRefactoring Java 源代码的新主题。

GitHub

随着 GitHub 集成的扩展,出现了一个新的 使用 GitHub 主题,该主题展示了如何从 VS Code 中使用 GitHub。

值得注意的修复

  • 46886:无法调整调试侧边栏中“断点”部分的大小
  • 85344:当我在 VSCode 中单击链接时,Firefox 崩溃。
  • 86425:集成终端宽度太窄
  • 90714:将调试控制台字体大小设置应用于输入字段
  • 90734:Windows Terminal 作为外部终端未在工作区目录中启动
  • 93973:[SSH] 在侧边栏中自动显示不起作用
  • 94574:居中布局:显示差异编辑器时使用全宽
  • 94982:Bash 调试未从 1.44.0 版本开始启动
  • 95108:serverReadyAction debugWithChrome 突然停止工作
  • 95319:getWordRangeAtPosition 可能会冻结扩展主机

感谢

最后但同样重要的是,衷心感谢!以下人士为使 VS Code 变得更好做出了贡献

对我们的问题跟踪的贡献

vscode 的贡献

vscode-json-languageservice 的贡献

vscode-html-languageservice 的贡献

language-server-protocol 的贡献

debug-adapter-protocol 的贡献

vscode-generator-code 的贡献

vscode-textmate 的贡献

vscode-vsce 的贡献

localization 的贡献

有超过 800 名 Cloud + AI 本地化 社区成员使用 Microsoft 本地化社区平台 (MLCP),其中约有 170 名活跃贡献者参与 Visual Studio Code。我们感谢您的贡献,无论是提供新的翻译、对翻译进行投票,还是提出流程改进建议。

这是 贡献者 的快照。有关包括贡献者姓名列表在内的项目详细信息,请访问项目站点 https://aka.ms/vscodeloc

  • 中文(简体,中国) 易婷婷, 顾轶之, Charles Dong, Justin Liu, Joel Yang, Tony Xia, 朱知阳, meng shao, 普鲁文, paul cheung, 张锐, Yiting Zhu, Nong Zhichao, Liam Kennedy, 武 健, Zhao Liguo, 宁 倬, Bochen Wang, 一斤瓜子, 顺 谭, 云 何, Yun Liu, yungkei fan, 杨 越鹏。
  • 中文(繁体,台湾) 船長, Winnie Lin, 予 恆, TingWen Su。
  • 捷克语 David Knieradl。
  • 丹麦语(丹麦) Javad Shafique, Lasse Stilvang。
  • 英语(英国) Martin Littlecott, Oren Recht, Faris Ansari。
  • 芬兰语(芬兰) Teemu Sirkiä。
  • 法语(法国) Antoine Griffard, Thierry DEMAN-BARCELÒ, Rodolphe NOEL, Nathan Bonnemains。
  • 希伯来语(以色列) Chayim Refael Friedman, Asaf Amitai。
  • 匈牙利语 Bucsai László。
  • 印度尼西亚语(印度尼西亚) Gerry Surya, Laurensius Dede Suhardiman。
  • 意大利语(意大利) Alessandro Alpi, Riccardo Cappello。
  • 日语(日本) Ikko Ashimine, Aya Tokura, Takayuki Fuwa, ちゃん きさらぎ, 住吉 貴志, Koichi Makino, Yoshihisa Ozaki, TENMYO Masakazu。
  • 韩语(韩国) Kyunghee Ko, June Heo。
  • 挪威语(挪威) Torbjørn Viem Ness。
  • 波兰语(波兰) Makabeus Orban, Kacper Łakomski, Karol Szapsza。
  • 葡萄牙语(巴西) Alessandro Trovato, Marcelo Fernandes, Arthur Lima, Luciana de Melo, Luiz Gustavo Nunes。
  • 葡萄牙语(葡萄牙) Pedro Filipe, António Pereira。
  • 俄语(俄罗斯) Andrey Veselov, Vadim Svitkin, Минаков Антон。
  • 西班牙语(西班牙,国际排序) Sifredo Da Silva, Ariel Costas Guerrero, David Roa, Abdón Rodríguez P., Luis Manuel, Carlos A. Echeverri V, A. Jesus Flores A., Ricardo Estrada Rdez, Alfonso Jesus Flores。
  • 瑞典语(瑞典) Per Ragnar Edin。
  • 泰米尔语(印度) krishnakoumar c。
  • 土耳其语(土耳其) Umut Can Alparslan, Mehmet Yönügül。
  • 乌克兰语(乌克兰) Nikita Potapenko, igor oleynik。
  • 越南语(越南) Hieu Nguyen Trung, LN Quang。