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

2020 年 3 月(版本 1.44)

更新 1.44.1:该更新解决了此安全问题

更新 1.44.2:该更新解决了这些问题

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


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

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

内部人员:希望尽快尝试新功能?您可以下载夜间版 内部人员 构建并尽快尝试最新更新。对于最新的 Visual Studio Code 新闻、更新和内容,请关注我们的 Twitter @code

辅助功能

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

  • Diff 视图现在更易于访问。使用 F7⇧F7 (Windows、Linux Shift+F7) 在可访问的 Diff 视图中导航更改,并使用暂存/取消暂存/还原选定范围命令暂存、取消暂存或还原当前更改。
  • 在我们的窗口小部件中使用更好的角色。listbox 角色用于建议窗口小部件和快速选择,list 用于静态列表,document 用于只读内容,例如欢迎视图和 Markdown 预览。
  • 调整了快速选择窗口小部件的行为。
  • 现在可以使用显示当前行的 CodeLens 命令命令在快速选择中显示当前行的 CodeLens。

时间轴视图

时间轴视图现在已退出预览并默认启用。这是一个统一的视图,用于可视化文件的时间序列事件(例如,Git 提交、文件保存、测试运行等)。时间轴视图会自动更新,默认情况下显示当前活动编辑器的时间轴。您可以通过切换视图工具栏中的眼睛图标来控制此默认行为。此外,与其他视图类似,时间轴视图支持边输入边查找或筛选。

时间轴视图默认情况下在文件资源管理器底部折叠。选择时间轴窗格将展开时间轴视图。

Collapsed Timeline view

在此版本中,内置的 Git 扩展贡献了一个时间轴源,它提供指定文件的 Git 提交历史记录。选择一个提交将打开该提交引入的更改的 diff 视图。上下文菜单提供复制提交 ID复制提交消息命令。文件资源管理器上下文菜单中还新增了一个打开时间轴命令,可快速显示所选文件的时间轴。

以下是时间轴视图的实际操作

Timeline view

主题:深色紫水晶

扩展可以贡献其他时间轴源(尽管 API 仍处于提议阶段),这些源将在统一的时间轴视图中显示。扩展还可以为时间轴视图和各个时间轴项目贡献菜单项。您也可以轻松选择要包含在视图中的源。

工作台

快速打开重写

快速打开 (⌘P (Windows、Linux Ctrl+P)) 控件使用的是我们树窗口小部件的旧版本,在此迭代中,它已迁移到使用我们最新的列表控件,该控件已在 VS Code UI 的其他部分中使用。在功能上,您不应该能够察觉到区别,因为所有命令都将按以前的方式工作。

我们利用这次机会添加了一些您可能会发现有用的功能。

Quick Open

从文件导航到符号

现在,您可以继续导航到文件结果的符号,只需键入@即可。对于当前选定的文件,将显示所有符号,并且编辑器将在后台打开以显示活动符号。下面的视频还显示了您可以通过在@之后键入:来按类别对符号进行分组。

Quick Open navigate to symbols

通过空格分隔多个查询来筛选结果

如果您在文件搜索中获得了太多结果,您可以在键入空格后添加更多搜索模式。例如,如果您依次键入<文件名> <文件夹名称>,则可以通过文件夹来缩小结果范围。

Quick Open filtering

注意:这对于编辑器 (⇧⌘O (Windows、Linux Ctrl+Shift+O)) 和工作区 (⌘T (Windows、Linux Ctrl+T)) 符号选择器也有效。空格字符后的任何文本都将用于按该符号的容器进行筛选。

切换提供程序时保留输入

如果您保持快速打开可见并切换到另一个提供程序(例如,从文件搜索切换到符号搜索),VS Code 将应用已键入的任何筛选器并将其用于新提供程序。这使您能够在之前将它用于文件搜索时快速重用键入的输入以进行符号搜索。

按最近使用排序编辑器历史记录

新的设置"search.quickOpen.history.filterSortOrder": "recency"允许您按最近打开的项目排序编辑器历史记录,即使是在开始搜索时也是如此。默认情况下,编辑器历史记录结果将根据使用的筛选器模式按相关性排序。

打开编辑器到侧面的新命令

新的命令workbench.action.alternativeAcceptSelectedQuickOpenItem允许您添加一个额外的键盘快捷键,以从快速打开将文件或符号打开到侧面。默认情况下,Ctrl+Enter(macOS:Cmd+Enter)将在新的编辑器组中而不是在当前组中打开文件到侧面。

改进的扩展包显示

为了在扩展视图中识别扩展包,现在有一个数字徽章显示扩展包中包含的扩展数量。

Extension Pack number of extensions badge

主题:GitHub Sharp 带自定义

扩展详细信息页面现在显示扩展包中捆绑的所有扩展。

Extension Pack details page showing bundled extensions

主题:GitHub Sharp 带自定义

调整编辑器选项卡滚动条的高度

新的设置workbench.editor.titleScrollbarSizing允许您增加编辑器选项卡和面包屑滚动条的大小。这使得更容易滚动浏览很长的打开编辑器列表。

将其配置为large以获得更大的滚动条

Large scrollbar

文件资源管理器可以显示隐藏文件

如果一个文件是隐藏的(通过files.exclude设置),但它在编辑器中打开并可见,则该文件将在文件资源管理器中与其父链一起显示。只要该文件在编辑器区域中可见,这些文件及其父级就会以淡化的颜色显示在文件资源管理器中。

视图:用...重新打开

新的视图:用...重新打开命令允许您使用不同的自定义编辑器重新打开当前活动文件。

Using the Reopen With command with the custom editor example extension

您可以使用此命令在 VS Code 的标准文本编辑器和自定义编辑器之间切换,或在多个资源的自定义编辑器之间切换。

workbench.editorAssociations 设置

同样对于自定义编辑器,新的workbench.editorAssociations设置允许您配置用于特定资源的编辑器。

以下示例将所有以.catScratch结尾的文件配置为使用来自我们扩展示例的示例自定义文本编辑器打开。

"workbench.editorAssociations": [
  {
    "viewType": "catCustoms.catScratch",
    "filenamePattern": "*.catScratch"
  }
]

现在在视图上显示视图进度

我们已将自定义视图的进度指示更改为现在显示在每个视图本身,而不是在视图容器的顶部。这使得长时间运行的操作与其进度之间建立更直接的联系。还为扩展提供了一个新的 API 选项,以便在视图上显示自定义进度。

您可以在此处看到 GitLens 扩展视图上的进度显示

View progress indication

新的默认等宽字体

我们已更新 VS Code UI 中使用的等宽字体至

.mac { --monaco-monospace-font: "SF Mono", Monaco, Menlo, Courier, monospace; }
.windows { --monaco-monospace-font: Consolas, "Courier New", monospace; }
.linux { --monaco-monospace-font: "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace; }

此更改不会影响编辑器中的字体选择。

编辑器

在重新打开文件时保留撤消堆栈

VS Code 现在会在关闭文件时保留文件的 **撤消/重做** 堆栈。当文件重新打开时,如果其内容自关闭后未发生更改,则撤消/重做堆栈将被还原。

如果您使用 workbench.editor.limit.value 设置限制了打开的编辑器数量,或者您不小心关闭了正在处理的文件,这将非常有用。

保存时对代码操作进行显式排序

您现在可以将 editor.codeActionsOnSave 设置为要按顺序执行的代码操作数组。您可以使用此方法来保证特定代码操作始终在可能与其冲突的另一个代码操作之前或之后运行。

以下 editor.codeActionsOnSave 将始终在组织导入完成之后运行 **组织导入**,然后运行 **修复所有**

"editor.codeActionsOnSave": [
    "source.organizeImports",
    "source.fixAll"
]

使用 editor.wordSeparators 进行下一个查找匹配

命令 **将选择添加到下一个查找匹配项** (⌘D (Windows, Linux Ctrl+D)) 现在会尊重设置 editor.wordSeparators。以前,该命令将使用当前文件语言定义的单词定义。

调试

调用堆栈视图改进

调用堆栈视图是一个复杂的视图,因为它显示了不同类型的对象(会话、进程、线程、堆栈帧和分隔符元素)并为不同类型提供了不同的操作。为了便于区分对象类型并了解其支持的交互,我们已经开始进行一些视觉改进

  • 调试会话现在用图标装饰。
  • 可点击的元素使用链接颜色。
  • 更小的分隔符和演示元素。

Call Stack

新的调试控制台图标

我们为调试控制台引入了新的图标,并在将调试控制台视图从面板中移出时在活动栏中使用它。

Debug Console icon

调试扩展的进度反馈 UI

VS Code 现在支持为调试适配器协议 (DAP) 在上一个里程碑中提出的“进度事件”。使用进度事件,调试扩展可以为长时间运行的操作提供用户反馈。

VS Code 调试 UI 在两个位置显示进度反馈

  • 作为调试视图顶部的进度条。
  • 作为“静默通知”,这意味着进度“静默”显示(不会中断用户)在状态栏中,可以通过单击它打开到通知中。通知显示更详细的信息,并允许取消底层长时间运行的操作(如果操作支持取消)。

为了避免短时间操作的闪烁,进度 UI 仅在 0.5 秒延迟后启动。

以下视频显示了模拟调试(目前唯一支持调试扩展)中长时间运行操作的新进度 UI。我们预计其他调试扩展将很快采用进度支持。

Debug progress UI

调试控制台中的代码完成选择

在上一个里程碑中,我们在调试适配器协议的“完成”请求中添加了选择控制。在此版本中,VS Code 现在完全支持协议添加,调试扩展可以在插入完成项后调整选择(或插入点)。

集成终端

允许菜单栏助记符跳过终端

当启用新的设置 terminal.integrated.allowMenubarMnemonics 时,所有使用 Alt 的击键将跳过终端,因此它们将由 VS Code 的键绑定管理器处理,使所有菜单助记符都能够工作,代价是终端内的 Alt 热键。此设置默认情况下处于禁用状态。

语言

JavaScript 中的自动导入样式

新的 javascript.preferences.importModuleSpecifierEnding 设置允许您控制 VS Code 的自动导入使用的导入样式。如果您正在为支持原生 ES6 模块的平台(如浏览器)编写代码,这可能很有用。

可能的取值有

  • auto - 默认值。使用项目的 jsconfig 来确定要使用的导入样式。
  • minimal - 使用 Node.js 风格的导入。这将缩短 src/component/index.js 的导入为 src/component
  • index - 还包括路径中的 index 部分。这将缩短 src/component/index.jssrc/component/index
  • js - 使用完整路径,包括文件扩展名 (.js)。

任务

更快的任务快速选择

任务快速选择以前需要从所有提供任务的扩展中获取所有任务,然后再显示要从中选择的任务列表。现在,VS Code 不会在显示快速选择下拉列表之前获取任何其他扩展任务,使其速度更快。扩展贡献的任务也只会在您请求它们时才获取,这将释放扩展主机。

在 TypeScript 贡献的 tsc 任务下方,只有在用户选择 **typescript** 扩展后才会获取。

Task Quick Pick

主题:One Dark Pro

预览功能

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

设置同步

我们过去几个月一直在努力支持跨机器同步 VS Code 设置、扩展和键盘快捷键,此功能可在 Insiders 版本中预览。

在此里程碑中,我们添加了用户代码段同步和更多 UI 状态同步。

Settings Sync configuration

主题:GitHub Sharp 带自定义

目前同步以下 UI 状态

  • 显示语言
  • 活动栏条目
  • 面板条目
  • 视图布局和可见性
  • 最近使用的命令
  • “不再显示”通知

**注意:**目前,仅同步用户语言代码段。对全局代码段的支持将在下一个里程碑中添加。

我们还添加了远程和本地同步备份视图,用于恢复您的数据并帮助进行故障排除。您可以使用命令 **首选项同步:显示远程备份** 和 **首选项同步:显示本地备份** 访问这些视图。

Settings Sync backups view

主题:GitHub Sharp 带自定义

要了解更多信息,您可以访问 设置同步 文档。

帐户管理

贡献 身份验证提供程序 的扩展现在将在设置齿轮上方的新的 **帐户** 上下文菜单中显示其帐户。您可以查看当前登录的所有帐户,注销这些帐户并管理受信任的扩展。从这里登录 Microsoft 帐户是开始设置同步的另一种方法。

Accounts context menu

主题:Pop Light,带自定义

新的 JavaScript 调试器

这个月,我们继续在新的 JavaScript 调试器方面取得进展。它默认安装在 Insiders 上,可以在 VS Code Stable 的 Marketplace 中安装。您可以通过启用 debug.javascript.usePreview 设置,使用您现有的启动配置开始使用它。以下是本月添加的一些新功能

调试终端中的链接处理

您可以使用调试终端(**调试:创建 JavaScript 调试终端**)自动调试任何 Node.js 进程。现在,调试器还处理链接以启动调试您的浏览器,无论何时您 Cmd/Ctrl+Click 链接,无需配置。

Animation showing clicking on a link in the debug terminal, Chrome opening, and hitting a breakpoint

主题:Earthsong,字体:Fira Code

在监视和调试控制台中引用 $returnValue

当它在调用堆栈中可用时,您现在可以在调试控制台和监视表达式中引用函数的 $returnValue

Screenshot showing $returnValue being referenced in the Debug Console and Watch expression

TypeScript 3.9 Beta 支持

在此迭代中,我们添加了对新的 TypeScript 3.9 Beta 功能 的支持。TypeScript 3.9 的一些亮点包括

  • // @ts-expect-error 指令的建议。
  • 更好的保留换行符和格式的重构。
  • JavaScript 中的自动导入现在可以添加常见的 JS 风格导入 (require(...))。

您可以通过安装 TypeScript Nightly 扩展 立即尝试新的 TypeScript 3.9 功能。如果您遇到 TypeScript 3.9 beta 的任何错误,请分享反馈并告知我们!

增加视图放置灵活性

在几个迭代中,我们一直在努力通过允许单独的视图移动来提高布局的灵活性。在此迭代中,我们不仅添加了功能,还完善了体验。

新的拖放体验

活动栏图标、面板和侧边栏中的视图的拖放操作很简单,但模棱两可。当您实际放下任何这些项目时,可能难以确切地知道会发生什么。新的体验旨在提高清晰度并突出显示我们在此过程中启用的新功能。

在下面,用户首先通过重新排序侧边栏中的视图开始,然后重新排序面板中的选项卡和活动栏中的图标

New Drag and Drop experience

单个面板中的多个视图

您现在可以在单个面板中拥有多个视图,以更好地利用水平空间。一个常见的请求是同时查看终端和问题视图。现在可以通过将终端拖放到问题视图中来实现,如下所示。

Terminal and Problems view side by side

创建新的侧边栏组和移动面板

现在可以将视图移动到新的侧边栏组,在活动栏中创建一个新的图标条目。内置面板也不例外,现在可以移动到现有的侧边栏条目或它们自己的条目中。

下一个视频显示用户将终端拖放到活动栏中,这将在侧边栏中创建终端图标和终端空间。接下来,用户将输出放到终端侧边栏中。最后,大纲从资源管理器移动到活动栏,创建了它自己的侧边栏区域。

Dragging views into the Activity Bar

向面板添加视图容器

我们现在已经具备了所有必需的条件,允许扩展直接将视图添加到面板,就像您今天对活动栏所做的那样,这在树视图 API 指南中有所介绍。请注意,此功能仍处于预览阶段,树视图文档在这些更改被认为稳定之前不会反映这些更改。但是,要试用它,您可以将文档中的代码片段更新为以下内容

"contributes": {
  "viewsContainers": {
    "panel": [
      {
        "id": "package-explorer",
        "title": "Package Explorer",
        "icon": "media/dep.svg"
      }
    ]
  }
}

视图移动命令

最后,有一些新命令可以用来通过键盘移动视图,并重置您的布局。命令视图:移动焦点视图workbench.action.moveFocusedView)已更新以支持迭代的新功能。命令视图:重置焦点视图位置workbench.action.resetFocusedViewLocation)已添加以将单个视图放回其默认位置。

面板和自定义视图的活动栏图标

随着灵活布局的引入,现在为默认面板视图在移动到活动栏时提供专门的图标。当组合多个视图时,自定义视图也具有一个(默认)图标。

Panel view icons

同步区域

我们改进了去年 11 月推出的镜像光标功能,采用了称为同步区域的新实现。目前此功能适用于 HTML,您可以通过以下方法之一试用它

  • 在 HTML 标签上运行命令键入时重命名符号(默认情况下绑定到)。
  • 打开editor.renameOnType设置,并将光标移动到 HTML 标签上。

HTML rename on type

红色区域是同步区域。顾名思义,一个区域的任何更改都会同步到其他区域。您可以通过将光标移出区域或按ESC退出此模式。此外,在任何区域中键入或粘贴以空格开头的任何内容也会退出此模式。

我们期待着提供一个 API,可以使这种键入时重命名体验可用于其他语言,如 JSX、XML,甚至 TypeScript 中的局部变量。

对扩展的贡献

远程开发

远程开发扩展的工作仍在继续,这些扩展允许您使用容器、远程机器或适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。

1.44 中的功能亮点包括

  • 开发容器:直接将 PR 检查到容器中。
  • 开发容器:Kubernetes 容器附加支持。
  • 开发容器:实验性 WSL 2 Docker 引擎支持。

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

扩展创作

欢迎视图内容 API

某些视图现在支持从扩展贡献的欢迎内容。请参考原始问题以获取更多信息。有关如何使用扩展提供的视图使用此 API 的详细信息,您可以阅读树视图文档

此 API 已作为上一个里程碑中提出的内容添加,我们现在已将其最终确定。

语义标记提供者 API

现在已最终确定语义标记提供者 API。

语义标记的主题支持

颜色主题现在可以编写规则来对语言扩展(如 TypeScript)报告的语义标记进行颜色设置。

"semanticHighlighting": true,
"semanticTokenColors": {
    "variable.declaration.readonly:java": { "foreground": "#00ff00" "fontStyle": "bold" }
}

上面的规则定义了 Java 中所有只读变量的声明都应以绿色和粗体显示。

语义突出显示维基页面提供了更多信息。

TypeScript 语义标记改进

TypeScript 语言服务器返回了更多语义标记类型。颜色主题可以利用这些新的标记类型进行样式设置

  • 来自 JavaScript 默认库的所有符号都获得defaultLibrary修饰符。
  • 作为回调的函数参数被归类为function

请阅读TypeScript 语义突出显示插件自述文件,以概述 TypeScript 语言服务器返回的所有语义标记类型和修饰符。

文件系统错误代码

我们添加了FileSystemError#code,它是一个标识错误的字符串。当通过其任何工厂函数创建文件系统错误时,code就是该函数的名称,例如FileSystemError.FileNotFound(msg).code === 'FileNotFound'

StatusBarItem.command 的参数

StatusBarItem.command现在接受完整的Command对象,而不仅仅是命令 ID。这使扩展能够在激活状态栏项时向命令传递参数。

自定义文本编辑器

使用自定义文本编辑器,扩展现在可以将 VS Code 的标准编辑器替换为特定基于文本的资源的自定义基于 Web 视图的视图。潜在用例包括

  • 预览资产,例如着色器或.obj文件。
  • 为 XAML 等标记语言创建所见即所得编辑器。
  • 提供 JSON 或 CSV 等数据文件的替代交互式视图。

自定义编辑器文档介绍了如何使用新的自定义文本编辑器 API 以及如何确保您的新编辑器与 VS Code 良好配合。请务必查看自定义编辑器扩展示例

The custom editor example extension

在下一次迭代中,我们希望最终确定完整的自定义编辑器提案,该提案将自定义编辑器扩展到还支持二进制文件。

视图级进度指示

我们在window.withProgress API 的ProgressOptions.location中添加了一个新选项,允许在特定视图上显示进度。要使用,请设置ProgressOptions.location = { viewId: <view-id> };,其中<view-id>指定您要显示进度的视图的 ID。在上面视图进度部分中,有一个关于此功能的简短视频。

扩展视图上下文菜单中的 when-clause 上下文

我们在扩展视图的上下文菜单中添加了一个新的extension when-clause 上下文,其中包含扩展的标识符。

示例

  "extension/context": [
      {
          "command": "gitlens.showSettingsPage",
          "group": "2_configure",
          "when": "extension == eamodio.gitlens && extensionStatus == installed",
      }
  ]

新的 Codicon

我们在Codicon 库中添加了以下图标

  • account
  • bell-dot
  • debug-console
  • library
  • output
  • run-all
  • sync-ignored

New codicons

编写嵌入式语言服务器的文档

为嵌入式编程语言编写语言服务器比编写普通语言服务器更加复杂。鉴于如今嵌入式语言的流行程度,我们在语言扩展部分添加了嵌入式语言主题。文档包含两个示例,以说明构建嵌入式语言服务器的两种方法:语言服务和请求转发。请先查看嵌入式语言文档,或直接访问这两个示例

调试适配器协议

新的进度事件

我们已经最终确定了在调试适配器协议中报告进度的支持。调试适配器现在可以将进度事件(progressStartprogressUpdateprogressEnd)发送到前端客户端,以便为长时间运行的调试适配器操作显示进度。progressStart事件可以标记为可取消,以便客户端显示取消 UI 并发送cancel请求。为了在支持的调试适配器中启用进度事件,前端客户端需要在initialize请求中包含新的客户端功能supportsProgressReporting

更多详细信息可以在相应的DAP 功能请求中找到。从本里程碑开始,VS Code 支持进度事件。

"evaluate" 请求的剪贴板上下文值

DAP 客户端(前端)在将变量和表达式值复制到剪贴板时使用evaluate请求。为了帮助调试适配器检测这种情况,已将一个新值clipboard添加到传递给evaluate请求的context参数的值集中。为了确保向后兼容性,仅当调试适配器返回supportsClipboardContext功能时,客户端才允许传递新值。

语言服务器协议

已经发布了语言服务器索引格式规范的新版本(0.5.0)。该版本支持使用标识符在项目转储之间链接引用结果。此外,还发布了 LSP 客户端(6.2.0-next.2)和服务器(6.2.0-next.2)库的新版本。

提议的扩展 API

每个里程碑都会带来新的提议 API,扩展作者可以尝试使用它们。与往常一样,我们热切期待您的反馈。这是尝试使用提议 API 的方法

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

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

此新的 API 允许扩展拦截和处理在终端中单击的链接。

window.registerTerminalLinkHandler({
  handleLink((terminal, link) => {
    if (link === 'https://vscode.js.cn') {
      window.showInformationMessage('Handled');
      return true;
    }
    return false;
  });
});

为终端环境贡献

此新的 API 允许扩展在终端启动时更改环境变量。

const collection = window.getEnvironmentVariableCollection(true);
const separator = process.platform === 'win32' ? ';' : ':';
collection.prepend('PATH', `/foo${separator}`);
collection.replace('JAVA_HOME', '/bar');

这些集合是扩展和工作区特定的,VS Code 处理多个扩展之间的冲突。它们可以选择在窗口重新加载时持久保存,并且我们已经采取了措施来确保以这样的方式进行持久保存,即在窗口加载后立即创建的终端不会阻塞扩展宿主启动,而是使用最后已知的版本。当处置集合或创建新的非持久集合,或者卸载扩展时,这些持久保存的集合可能会被删除。

计划是通过一些指示器向用户显示这些环境修改,该指示器允许更新“过时”的终端环境,但这项工作仍在进行中。您可以关注问题 #46696中的讨论。

浏览器支持

远程指示器

在浏览器中使用 VS Code 时,现在有一个远程指示器。这使您可以了解您连接到的远程环境,并允许扩展添加与远程环境关联的其他命令。通过此更改,已从状态栏中删除在桌面中打开链接,并将移动到远程选择器中。

注意:VS Code 目前不支持从浏览器连接到不同的远程环境(例如 SSH、容器或 WSL)。

Web remote indicator

一个新的菜单位置允许在浏览器中运行的扩展贡献链接到左上角的汉堡菜单。

Web navigational links

工程

VS Code 编译为 ES6

VS Code 已全面采用 ES6。由于 TypeScript 的使用,我们很长时间以来一直使用 ES6 语法,但现在我们假设目标运行时也支持 ES6。这允许我们使用 ES6 的“全局”对象,例如 Strings#endsWith,并使用新的语言特性,例如生成器函数和符号。

使用 GitHub Actions 自动化问题分类

在本迭代中,我们将现有的分类自动化从使用 GitHub Apps 迁移到了 GitHub Actions。这带来了很多好处,例如在 vscode 仓库 中获取日志,以及提高开发速度。我们还添加了一些新的自动化,例如一个 Action,它会在修复被拉入 VS Code Insiders 时通知问题作者,使作者可以快速验证修复是否有效。

我们使用的所有 Action 都在 GitHub 上发布,并采用 MIT 许可证。

文档和扩展

Python

有两个新的 Python 教程

C++

C++ 扩展教程 已被重写,并且有一个新的特定于 在 Linux 上使用 C++ 的教程。

Docker 扩展

Microsoft Docker 扩展的 1.0 版本现已可用。该扩展可以将 Docker 文件添加到您的项目中,构建和调试 Docker 镜像,并包含一个资源管理器,可以轻松启动、停止、检查和删除容器和镜像。

Docker extension

Azure 扩展

有两个新的扩展,用于直接在 VS Code 中处理 Azure 资产。

  • Azure 虚拟机 - 创建具有预配置 SSH 访问权限的 Ubuntu 虚拟机,以便您可以使用 Remote-SSH 扩展连接到它们。

  • Azure 资源组 - 查看所有 Azure 资源并快速导航到 Azure 视图中的资源。

Azure Virtual Machines extension

值得注意的修复

  • 75932: 调试加载失败:进程选择器失败(您 131072x1 的屏幕尺寸是错误的,预计会出现问题)
  • 84271: 在最近打开的文件(快速选择)中添加“x”以删除文件
  • 89658: 没有找到调试适配器
  • 92381: 如果您反复将文件夹添加到工作区然后又从工作区中删除,则“将文件夹添加到工作区”提示会重复出现。
  • 93344: 欢迎视图应滚动
  • 93634: 进度:让窗口进度变成静音通知进度

感谢

最后但并非最不重要的是,对以下人员表示衷心的感谢!感谢他们帮助让 VS Code 变得更好。

对我们问题跟踪的贡献

vscode 的贡献

我们的无障碍社区,感谢他们不断提供反馈!以下列举几位:

vscode-vsce 的贡献

language-server-protocol 的贡献

vscode-languageserver-node 的贡献

vscode-generator-code 的贡献

vscode-loader 的贡献

localization 的贡献

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

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

  • 简体中文 (中国) 易婷婷,顾逸之,董思文,刘justin,杨joel,夏tony,朱知阳,孟邵,普鲁文,paul cheung,张锐,朱逸婷,农志超,Liam Kennedy,武健,赵立国,宁倬,王博晨,一斤瓜子,谭顺,何云,刘云, yungkei fan.
  • 繁体中文 (台湾) 船長,林 Winnie,予恆.
  • 捷克语 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.
  • 印尼语 (印度尼西亚) Gerry Surya,Laurensius Dede Suhardiman.
  • 意大利语 (意大利) Alessandro Alpi,Riccardo Cappello.
  • 日语 (日本) 芦峰 郁子,徳倉 綾,不破 隆之,ちゃん きさらぎ,住吉 貴志,牧野 浩一,尾崎 義久,天妙 正和.
  • 韩语 (韩国) 高京熙,许俊.
  • 挪威语 (挪威) Torbjørn Viem Ness.
  • 波兰语 (波兰) Makabeus Orban,Kacper Łakomski.
  • 葡萄牙语 (巴西) Alessandro Trovato,Marcelo Fernandes,Arthur Lima,Luciana de Melo,Luiz Gustavo Nunes.
  • 葡萄牙语 (葡萄牙) Pedro Filipe.
  • 俄语 (俄罗斯) Andrey Veselov,Vadim Svitkin,Минаков Антон.
  • 西班牙语 (西班牙,国际排序) Sifredo Da Silva,Ariel Costas Guerrero,David Roa,Abdón Rodríguez P.,Luis Manuel,Carlos A. Echeverri V.
  • 瑞典语 (瑞典) Per Ragnar Edin.
  • 泰米尔语 (印度) krishnakoumar c.
  • 土耳其语 (土耳其) Umut Can Alparslan,Mehmet Yönügül.
  • 乌克兰语 (乌克兰) Nikita Potapenko.
  • 越南语 (越南) Hieu Nguyen Trung.