2020年3月(版本1.44)

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

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

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


欢迎来到2020年3月发布的Visual Studio Code。此版本中有许多更新,我们希望您会喜欢,一些关键亮点包括:

如果您想在线阅读这些发布说明,请访问更新code.visualstudio.com上。

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

可访问性

在这个里程碑中,我们收到了社区的宝贵反馈,这帮助我们识别并解决了许多无障碍问题

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

时间线视图

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

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

折叠时间线视图

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

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

时间线视图

主题: Dark Amethyst

扩展可以贡献额外的时间线来源(尽管API仍处于提议阶段),这些来源将显示在统一的时间线视图中。扩展还可以为时间线视图以及单个时间线项目贡献菜单项。您还可以轻松选择希望在视图中包含的来源。

工作台

快速打开重写

快速打开 (⌘P (Windows, Linux Ctrl+P)) 控件之前使用的是我们旧版本的树部件,在此次迭代中,它已迁移到使用我们最新的列表控件,该控件已在 VS Code UI 的其他部分中使用。从功能上讲,您应该无法察觉到差异,因为所有命令都将像以前一样工作。

我们确实利用这个机会添加了一些您可能会觉得有用的功能。

快速打开

从文件导航到符号

你现在可以通过输入@继续导航到文件结果的符号。对于当前选定的文件,所有符号将显示出来,编辑器将在后台打开以显示活动符号。下面的视频还展示了你可以通过在@后跟随:来按类别分组符号。

快速打开导航到符号

通过用空格分隔多个查询来过滤结果

如果在文件搜索中得到的结果过多,您可以在输入空格后添加更多的搜索模式。例如,如果您依次输入 ,可以通过文件夹缩小结果范围。

快速打开过滤

注意: 这也适用于编辑器(⇧⌘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)将在新的编辑器组中打开文件,而不是在当前组中。

改进的扩展包显示

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

扩展包扩展数量徽章

主题:GitHub Sharp 自定义

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

扩展包详情页面显示捆绑的扩展

主题:GitHub Sharp 自定义

调整编辑器标签滚动条的高度

一个新的设置 workbench.editor.titleScrollbarSizing 允许你增加编辑器标签和面包屑的滚动条大小。这使得在长列表的打开编辑器中滚动变得更加容易。

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

大滚动条

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

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

视图:重新打开方式

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

使用自定义编辑器示例扩展的Reopen With命令

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

workbench.editorAssociations 设置

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

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

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

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

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

在这里,您可以看到GitLens扩展视图上的进度显示:

查看进度指示

新的默认等宽字体

我们已经更新了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 将在 Organize Imports 完成后始终运行 Fix All

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

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

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

调试

调用堆栈视图改进

CALL STACK视图是一个复杂的视图,因为它显示了不同类型的对象(会话、进程、线程、堆栈帧和分隔元素),并为不同类型提供了不同的操作。为了更容易区分对象类型并理解它们支持的交互,我们开始进行一些视觉上的改进:

  • 调试会话现在会显示一个图标。
  • 可点击的元素使用链接颜色。
  • 较小的分隔符和展示元素。

调用堆栈

新的调试控制台图标

我们为调试控制台引入了一个新图标,并且当调试控制台视图从面板中移出时,在活动栏中也使用了这个图标。

调试控制台图标

调试扩展的进度反馈用户界面

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

VS Code 调试界面在两个位置显示进度反馈:

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

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

以下视频展示了Mock Debug(目前唯一支持的调试扩展)中(模拟的)长时间运行操作的新进度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扩展后,TypeScript贡献的tsc任务才会被获取。

任务快速选择

主题:One Dark Pro

预览功能

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

设置同步

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

在这个里程碑中,我们添加了同步用户代码片段和更多的用户界面状态。

设置同步配置

主题:GitHub Sharp 自定义

当前同步的UI状态如下:

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

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

我们还添加了远程和本地同步备份视图,用于恢复您的数据并帮助进行故障排除。您可以使用命令Preferences Sync: Show Remote BackupPreferences Sync: Show Local Backup访问这些视图。

设置同步备份视图

主题:GitHub Sharp 自定义

要了解更多信息,您可以访问Settings Sync文档。

账户管理

贡献Authentication Provider的扩展现在将在设置齿轮上方的新帐户上下文菜单中显示其帐户。您可以查看当前登录的所有帐户,注销它们,并管理受信任的扩展。从这里登录Microsoft帐户是启动设置同步的另一种方式。

账户上下文菜单

主题:带有自定义设置的流行浅色主题

新的 JavaScript 调试器

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

调试终端中的链接处理

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

动画展示在调试终端中点击链接,Chrome打开并命中断点

主题:地球之歌,字体:Fira Code

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

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

截图显示在调试控制台和监视表达式中引用了$returnValue

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 测试版时是否遇到任何错误!

视图放置灵活性增强

在几次迭代中,我们致力于通过允许单个视图移动来提高布局的灵活性。在这次迭代中,我们不仅添加了功能,还优化了体验。

新的拖放体验

活动栏图标、面板和侧边栏内的视图的拖放操作虽然简单,但存在模糊性。在实际放置这些项目时,可能很难确切知道会发生什么。新的体验旨在提高清晰度,并突出我们在此过程中启用的新功能。

下面,用户首先在侧边栏中重新排列视图,然后在面板中重新排列标签页,并在活动栏中重新排列图标:

新的拖放体验

单个面板中的多个视图

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

终端和问题视图并排显示

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

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

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

将视图拖入活动栏

向面板贡献一个视图容器

我们现在已经具备了所有必要的条件,允许扩展直接向面板贡献一个视图,就像您现在可以通过活动栏所做的那样,这在树视图API指南中有详细说明。请注意,此功能仍处于预览阶段,树视图文档在这些更改被认为是稳定之前不会反映这些更改。但是,要尝试它,您可以将文档中的代码片段更新为以下内容:

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

视图移动命令

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

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

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

面板视图图标

同步区域

我们改进了去年十一月引入的镜像光标功能,采用了一种名为同步区域的新实现。目前,此功能可用于HTML,您可以通过以下方式之一尝试:

  • 在HTML标签上运行命令On Type Rename Symbol(默认绑定到)。
  • 开启editor.renameOnType设置并将光标移动到HTML标签上。

HTML 输入时重命名

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

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

对扩展的贡献

远程开发

工作仍在继续在远程开发扩展上,这些扩展允许您使用容器、远程机器或Windows Subsystem for Linux (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语义高亮插件README,了解TypeScript语言服务器返回的所有语义标记类型和修饰符的概述。

文件系统错误代码

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

StatusBarItem.command 的参数

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

自定义文本编辑器

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

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

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

自定义编辑器示例扩展

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

视图级进度指示

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

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

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

示例:

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

新 Codicons

我们已将以下图标添加到Codicon库中:

  • 账户
  • 铃铛点
  • 调试控制台
  • 输出
  • 运行全部
  • sync-ignored

新代码图标

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

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

调试适配器协议

新进度事件

我们已经完成了对调试适配器协议中报告进度的支持。调试适配器现在可以向前端客户端发送进度事件(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://code.visualstudio.com') {
      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 处理多个扩展之间的冲突。它们可以选择在窗口重新加载时持久化,并且特别注意确保在窗口加载后立即创建的终端不会阻塞扩展主机的启动,而是使用最后已知的版本。这些持久化的集合可以通过销毁集合或创建新的非持久化集合来移除,或者在扩展被卸载时移除。

计划是通过某种指示器向用户展示这些环境修改,以便更新“过时”的终端环境,但这仍在进行中。您可以在issue #46696中关注讨论。

浏览器支持

远程指示器

在浏览器中使用VS Code时,现在有一个远程指示器。这让你知道你连接的远程环境,并允许扩展添加与远程相关的额外命令。随着这一变化,在桌面打开链接已从状态栏中移除,并将移至远程选择器中。

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

Web远程指示器

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

网页导航链接

工程

VS Code 编译为 ES6

VS Code 已经完全采用了 ES6。得益于 TypeScript,我们长期以来一直在使用 ES6 语法,但现在我们假设目标运行时也支持 ES6。这使得我们可以使用像 Strings#endsWith 这样的 ES6 "全局"功能,并且可以使用新的语言特性,如生成器函数和符号。

使用GitHub Actions自动化问题分类

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

我们使用的完整操作集已在GitHub上发布,遵循MIT许可证。

文档和扩展

Python

有两个新的Python教程:

C++

C++ 扩展教程 已经重写,并且有一个新的教程专门针对 在 Linux 上使用 C++

Docker 扩展

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

Docker扩展

Azure 扩展

有两个新的扩展可以直接在VS Code中处理Azure资产。

Azure 虚拟机扩展

显著的修复

  • 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名Cloud + AI 本地化社区成员使用微软本地化社区平台(MLCP),其中约有170名活跃贡献者参与Visual Studio Code的本地化工作。我们感谢您的贡献,无论是提供新的翻译、对翻译进行投票,还是建议流程改进。

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

  • Chinese (Simplified, China) 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.
  • Chinese (Traditional, Taiwan) 船長, 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.
  • Japanese (Japan) 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.