在 VS Code 中试用

2020 年 3 月 (版本 1.44)

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

Update 1.44.2:此更新解决了这些问题

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


欢迎使用 Visual Studio Code 2020 年 3 月版。此版本中有许多更新,希望您喜欢,其中包括以下一些关键亮点:

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

Insiders 版本:想尽快试用新功能吗?您可以下载每晚发布的 Insiders 版本,以便第一时间试用最新更新。有关 Visual Studio Code 的最新新闻、更新和内容,请关注我们的 Twitter 账号 @code

辅助功能

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

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

时间轴视图

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

时间轴视图默认在文件资源管理器底部处于折叠状态。选择时间轴侧边栏会展开时间轴视图。

Collapsed Timeline view

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

以下是时间轴视图的实际效果

Timeline view

主题:Dark Amethyst

其他时间轴源可以由扩展贡献(尽管 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 允许您添加一个额外的键盘快捷方式,以便从快速打开 (Quick Open) 打开文件或符号到侧边。默认情况下,Ctrl+Enter (macOS: Cmd+Enter) 会在新编辑器组中将文件打开到侧边,而不是在当前组中。

改进的扩展包显示

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

Extension Pack number of extensions badge

主题:GitHub Sharp with Customizations

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

Extension Pack details page showing bundled extensions

主题:GitHub Sharp with Customizations

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

新设置 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 秒后才开始显示。

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

Debug progress UI

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

在上一个里程碑中,我们为调试适配器协议的“completion”请求添加了选择控制。在此版本中,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.js 缩短为 src/component/index
  • js - 使用完整路径,包括文件扩展名 (.js)。

任务

更快的任务快速选择

任务快速选择以前会从所有提供任务的扩展中获取所有任务,然后才显示供选择的任务列表。现在,VS Code 在显示快速选择下拉列表之前不会获取任何额外的扩展任务,这使其速度大大提高。扩展贡献的任务也只在您请求时才获取,这释放了扩展主机资源。

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

Task Quick Pick

主题:One Dark Pro

预览功能

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

设置同步

过去几个月,我们一直致力于支持跨计算机同步 VS Code 设置、扩展和键盘快捷方式,此功能可在 Insiders 版本上进行预览。

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

Settings Sync configuration

主题:GitHub Sharp with Customizations

目前同步以下 UI 状态

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

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

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

Settings Sync backups view

主题:GitHub Sharp with Customizations

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

账户管理

贡献认证提供者的扩展现在会将其账户显示在设置齿轮上方的新账户上下文菜单中。您可以查看当前登录的所有账户,退出登录,并管理受信任的扩展。从这里登录 Microsoft 账户是开始设置同步的另一种方式。

Accounts context menu

主题:Pop Light with Customizations

新的 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

在监视 (Watch) 和调试控制台 (Debug Console) 中引用 $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 中的自动导入现在可以添加 Common 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

向面板贡献视图容器

我们现在具备允许扩展直接向面板贡献视图的所有条件,就像今天可以向活动栏贡献视图一样,这在Tree View API 指南中有文档记录。请注意,此功能仍处于预览阶段,Tree View 文档在这些更改被视为稳定之前不会反映这些更改。但是,要试用它,您可以将文档中的代码片段更新为以下内容:

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

Commands for view movement

最后,有一些新命令可以通过键盘移动视图并重置您的布局。命令视图: 移动焦点视图 (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 与扩展提供的视图一起使用的详细信息,您可以阅读Tree View 文档

此 API 在上一个里程碑中作为提议添加,现在已正式确定。

语义标记提供者 API

语义标记提供者 API 现已正式确定。

主题支持语义标记

颜色主题现在可以编写规则,为 TypeScript 等语言扩展报告的语义标记着色。

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

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

语义高亮 Wiki 页面有更多信息。

TypeScript 语义标记改进

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

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

阅读TypeScript 语义高亮插件 README,了解 TypeScript 语言服务器返回的所有语义标记类型和修饰符的概述。

文件系统错误代码

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

StatusBarItem.command 的参数

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

自定义文本编辑器

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

  • 预览资产,例如着色器或 .obj 文件。
  • 为标记语言(例如 XAML)创建 WYSIWYG 编辑器。
  • 提供数据文件(例如 JSON 或 CSV)的备用交互式视图。

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

The custom editor example extension

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

视图级别进度指示

我们已向 window.withProgress API 的 ProgressOptions.location 添加了新选项,允许在特定视图上显示进度。用法是设置 ProgressOptions.location = { viewId: <view-id> };,其中 <view-id> 指定了要显示进度的视图 ID。有关此功能的短视频可以在上面的视图进度部分找到。

扩展视图上下文菜单 when 子句上下文

我们已向扩展视图的上下文菜单添加了一个新的 extension when 子句上下文,其中包含扩展程序的标识符。

示例

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

新的 Codicons 图标

我们已向 Codicon 库添加了以下图标

  • 帐户
  • 响铃点
  • 调试控制台
  • 输出
  • 全部运行
  • 同步忽略

New codicons

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

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

调试适配器协议

新的进度事件

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

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

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

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

语言服务器协议

新版本的语言服务器索引格式 规范 (0.5.0) 已发布。该版本支持使用别名(monikers)链接跨项目转储的引用结果。此外,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。这使我们可以使用 Strings#endsWith 等 ES6“全局对象”,并允许使用新的语言特性,例如生成器函数和 symbols。

使用 GitHub Actions 自动化问题分类

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

我们使用的所有 Actions 均已在 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 的贡献

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

这里是贡献者的快照。有关项目详情(包括贡献者姓名列表),请访问项目网站:https://aka.ms/vscodeloc

  • 中文 (简体, 中国) Tingting Yi, Yizhi Gu, 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, 予 恆.
  • 捷克语 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.
  • 日语 (日本) Ikko Ashimine, Aya Tokura, Takayuki Fuwa, ちゃん きさらぎ, 住吉 贵志, Koichi Makino, Yoshihisa Ozaki, TENMYO Masakazu.
  • 韩语 (韩国) Kyunghee Ko, June Heo.
  • 挪威语 (挪威) 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.