2022年4月(版本1.67)

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

更新 1.67.2: 本次更新解决了这些问题

下载:Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap


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

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

观看发布派对: 聆听VS Code团队讨论一些新功能。您可以在我们的YouTube频道上找到活动录像

亮点简讯: 如果你只有60秒的时间,可以查看四月VS Code发布亮点视频,快速了解新内容。

内部人员:想要尽快尝试新功能吗?您可以下载每晚的内部人员版本,并在更新可用时立即尝试最新更新。

工作台

资源管理器文件嵌套

资源管理器现在支持根据文件名嵌套相关文件。有几种设置可以控制此行为:

  • explorer.fileNesting.enabled - 控制是否全局启用文件嵌套。它可以全局设置,也可以为特定工作区设置。
  • explorer.fileNesting.expand - 控制嵌套文件是否默认展开。
  • explorer.fileNesting.patterns - 控制文件如何嵌套。默认配置为TypeScript和JavaScript项目提供了嵌套智能,但鼓励您根据自己项目的结构进行修改。以下是一些示例:

默认配置:

.js 和 .min.js 文件嵌套在 .ts 文件下,tsconfig.test.json 嵌套在 tsconfig.json 下,package-lock.json 嵌套在 package.json 下

当文件与目录名称匹配时,在index.ts下嵌套("index.ts": "${dirname}.ts"):

在名为SomeFolder的目录中,SomeFolder.ts嵌套在index.ts下

嵌套文件,这些文件与另一个文件同名,但添加了一个段("*": "${basename}.*.${extname}"):

file1.test.myext 嵌套在 file1.myext 下,file2.spec.other 嵌套在 file2.other 下

主题: GitHub Light High Contrast

文件嵌套功能已经通过实验设置提供了多个版本。现在的行为基本上没有变化,除了文件操作。实验设置 explorer.experimental.fileNesting.operateAsGroup 已被移除,取而代之的是在折叠时将嵌套视为一个组,但在其他情况下视为单个实体。这意味着如果你想复制、剪切、拖动或删除整个嵌套文件堆栈,你可以折叠嵌套,然后将其作为单个实体进行操作。当嵌套元素展开时,选择行为将正常进行。

设置编辑器搜索过滤器按钮

设置编辑器搜索控件现在在右侧包含一个漏斗按钮。点击该按钮会显示一个过滤器列表,您可以将其应用于搜索查询以筛选结果。

主题: Light Pink

设置编辑器语言过滤器指示器

设置编辑器语言过滤器现在会更改范围文本,以更清楚地显示应用语言过滤器时正在操作的语言。上面的短视频展示了Markdown语言过滤器(@lang:markdown)被应用到过滤设置中的情况。

作为参考,当应用语言过滤器时,修改设置的数值只会修改该语言的设置值。语言特定设置settings.json中通过语言标识符进行范围限定:

  "[markdown]": {
      "editor.wordBasedSuggestions": "off"
  }

重构后保存文件

重构操作,如重命名,通常会修改多个文件并使其带有未保存的更改(脏)。外部开发工具通常要求这些文件被保存。为了使这个工作流程更简单,有一个新的设置 files.refactoring.autoSave,默认值为 true,用于控制是否应自动保存参与重构的文件。

在编辑器限制中排除未保存的编辑器

一个新的设置 workbench.editor.limit.excludeDirty 控制是否应将已打开编辑器的最大数量排除脏编辑器以计入配置的限制。该设置默认情况下是禁用的(false)。

将“未提交的更改”带回时间线

当我们上个月引入了本地历史功能时,我们从Git时间线提供者中移除了未提交的更改条目,因为它感觉有点多余。然而,一些用户在这个时间线条目中看到了真正的价值,现在你可以通过相应地配置新的git.timeline.showUncommitted设置来将其恢复。

打开失败时的新编辑器占位符

当编辑器无法打开时,VS Code 不再显示通知并显示之前打开的编辑器。相反,会显示一个带有错误消息的通用占位符,在某些情况下,还会提供解决错误的操作。

语言状态改进

语言状态项现在显示格式化程序冲突 - 当安装了多个语言的格式化程序但未将任何一个配置为默认格式化程序时,会发生这种情况。此外,当包含严重状态时,语言状态项更加突出。

此外,当您的文档被怀疑为与当前设置不同的语言时,语言状态项现在会显示切换语言的提示。这仅适用于未命名的编辑器和笔记本单元格,并且可以通过workbench.editor.languageDetectionHints设置进行配置。下面在Handy Dandy Notebook中进行了演示,该笔记本支持以各种不同语言执行单元格。

主题: GitHub Light High Contrast

显示无效或不兼容的扩展

扩展视图现在会在已安装的扩展列表中显示无效或不兼容的扩展,并带有错误状态。例如,如果您的VS Code版本是1.67.0-insider,而您安装了一个需要VS Code版本1.68.0的扩展,那么它将以不兼容的错误状态显示在列表中。

扩展视图中显示的不兼容扩展详细信息

退出前确认

可以配置一个新的设置 window.confirmBeforeClose,以在退出应用程序之前显示确认对话框。

你可以选择keyboardOnly在使用键绑定时弹出确认对话框,或者选择always,即使在使用鼠标退出时也会弹出。

注意: 这个设置并不是全新的,已经在VS Code for Web中提供了一段时间。

comments.openView 默认值

comments.openView 的旧默认值为 file,这导致每次打开带有评论的文件时,评论视图都会打开。为了使评论视图不那么嘈杂,新的默认值是 firstFile,它导致评论视图仅在会话期间第一次打开带有评论的文件时打开。

多行注释

在幕后,VS Code 自评论用户体验最终确定以来就支持多行评论,但多行评论从未在用户界面中显示。您现在可以查看和留下多行评论。

在新窗口中处理URI

每当VS Code的URI包含查询参数windowId=_blank时,VS Code将在新窗口中处理它。示例:vscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.git&windowId=_blank

编辑器

默认启用的括号对颜色化

鉴于在1.60版本中引入的新括号对颜色化功能的积极反馈,我们默认启用了括号对颜色化。

开启和关闭括号对颜色化的并排比较

可以通过将"editor.bracketPairColorization.enabled"设置为false来禁用括号对颜色化。

括号对颜色化也可以仅为特定语言禁用:

"[typescript]": {
  "editor.bracketPairColorization.enabled": false,
},

TextMate语法可以将标记标记为不平衡

以前,TextMate语法无法将某些括号标记为不平衡,例如在shell脚本的case语句中的闭合括号:

旧行为,未检测到不平衡的括号

为了使括号对匹配和着色更加健壮,TextMate语法贡献现在可以表达某些标记中的括号不应被匹配。在扩展的package.jsoncontributes部分中,提供的语法可以使用属性balancedBracketScopes(默认为["*"])和unbalancedBracketScopes(默认为[])来包含或排除括号匹配的范围。

"grammars": [{
    "language": "shellscript",
    "scopeName": "source.shell",
    "path": "./syntaxes/shell-unix-bash.tmLanguage.json",
    "balancedBracketScopes": [ "*" ],
    "unbalancedBracketScopes": [ "meta.scope.case-pattern.shell" ]
}],

通过此功能,shell脚本的语法现在可以指示在case语句中的)不应被匹配:

新行为正确跳过未匹配的括号

新的括号匹配算法

括号匹配现在使用与括号着色相同的数据结构。这既提高了准确性,也提高了性能。

旧的括号匹配行为(注意颜色和高亮装饰不匹配):

旧行为,括号匹配不正确

新的括号匹配行为:

新的括号匹配行为

括号指南改进

水平括号引导现在正确地支持换行。此外,仅跨越单行的括号对也会有自己的水平括号引导。

水平括号引导显示在换行处

水平括号引导默认是禁用的,可以通过"editor.guides.bracketPairsHorizontal": true来启用。

在此版本中,"editor.guides.highlightActiveIndentation" 现在接受值 "always"。如果设置为 always,即使已经有一个活动的括号对,缩进指南也会被高亮显示。

切换内联提示

内嵌提示是一种在源代码中显示额外信息的好方法。然而,有时您只想查看实际的源代码。为了支持快速隐藏内嵌提示,editor.inlayHints.enabled 设置已更改:除了 onoff 之外,还有 onUnlessPressedoffUnlessPressed 值。on/offUnlessPressed 值在按下并按住 Ctrl+Alt 时隐藏或显示内嵌提示。

编辑器 › 嵌入提示:已启用 值:

  • on - 内联提示已启用。
  • off - 内联提示被禁用。
  • onUnlessPressed - 使用 Ctrl+Alt 显示和隐藏的内嵌提示。
  • offUnlessPressed - 嵌入提示隐藏并通过Ctrl+Alt显示。

改进的内联建议

上个月我们增加了使用👻幽灵文本(淡色)进行快速建议的功能。提醒:您需要为editor.quickSuggestions设置使用inline。我们在这方面做了一些改进工作,特别是现在支持触发字符和TypeScript的“带参数的完整函数”。

要在输入触发字符(如.)时禁用IntelliSense,请设置"editor.suggestOnTriggerCharacters": false。要启用TypeScript函数调用补全,请使用"typescript.suggest.completeFunctionCalls": true

将文本拖放到编辑器中

你现在可以从其他应用程序拖放文本到文本编辑器中。例如,在macOS上,这允许你将表情符号面板中的表情符号拖放到文本编辑器中:

拖动时,虚线光标会显示文本将插入的位置。

终端

查找结果数量

在终端中搜索时,结果计数和当前选中的匹配索引现在会显示在查找控件中。

在终端中搜索文本,查找控件标记为14个匹配项中的第12个,表示当前选择了第12个匹配项

源代码控制

源代码控制仓库视图

在这个里程碑中,我们引入了一个新的设置,scm.repositories.sortOrder,用于控制源代码控制仓库视图中显示的仓库的默认排序顺序。仓库可以按照它们被发现的顺序、名称和完整路径进行排序。可以通过源代码控制仓库视图的... 视图和更多操作菜单以及源代码控制视图的... > 查看和排序 > 仓库菜单来更改排序顺序。

下面的短视频展示了SCM > 仓库:排序顺序设置默认是discovery time,即选择仓库的时间,并且您还可以在源代码控制视图中更改排序顺序。

编辑器装饰改进

上一个里程碑中,我们通过采用修改行装饰器的模式,提高了编辑器装饰器对于添加/修改行的可访问性。在这个里程碑中,我们添加了一个新的设置,scm.diffDecorationsGutterPattern,允许用户切换编辑器装饰器的模式。

该设置默认使用修改行装饰的模式,但不适用于新增行:

"scm.diffDecorationsGutterPattern": {
    "added": false,
    "modified": true
}

性能改进

git.untrackedChanges设置设为hidden的用户在处理大型仓库时将体验到更好的性能。这是通过在调用git status时传递-uno参数来实现的。

扩展的远程源提供者API

Git扩展API现在允许注册或显示远程源提供者的扩展提供更丰富的远程源信息。

远程源提供者现在可以为单个远程源设置描述和图标。此外,提供者可以选择性地指定最近的远程源。这些远程源将在选择器的顶层显示,以便于访问,并在提供时间戳的情况下按时间戳排序。

扩展的API已被内置的GitHub扩展以及GitHub RepositoriesAzure Repos扩展在github.devvscode.dev中采用。

使用SSH从GitHub克隆

一个新的设置 github.gitProtocol 允许你在从 GitHub 克隆仓库时更改默认协议。默认值为 https,但可以更改为 ssh

调试

自动扩展惰性变量

几个月前,我们增加了支持点击按钮以在调试器的变量视图中展开“惰性”变量的功能。现在有一个新的设置,debug.autoExpandLazyVariables,可以自动展开惰性变量而无需点击。

懒加载变量的新按钮

我们已经将文本链接按钮更新为带有“眼睛”codicon的真实按钮。“眼睛”codicon也被更新,使其看起来更像眼睛。

一个用于展开惰性变量的按钮

Shift-点击以禁用断点

你现在可以Shift+Click在断点(或条件断点,或日志点)上禁用它,并重新启用它。

语言

现在,您可以通过将文件从VS Code的资源管理器拖放到Markdown编辑器中来快速创建Markdown链接。在将文件拖放到Markdown编辑器上时按住Shift键,即可将其放入编辑器并创建指向该文件的链接:

如果文件看起来像一张图片,VS Code 会自动插入一个 Markdown 图片。否则,会添加一个普通的 Markdown 链接。

这也适用于从其他应用程序拖动某些类型的文件,例如从网页浏览器中拖放图像:

您可以通过设置"markdown.editor.drop.enabled": false来禁用此拖放行为。

Markdown: 查找所有对标题的引用

VS Code 现在支持在 Markdown 文件中运行 查找所有引用 功能,用于标题。这使您能够查看当前工作区中使用给定标题的所有位置,包括来自其他 Markdown 文件的链接。

要开始使用,请将光标放在标题本身或链接到标题的片段部分(例如,#some-header[link text](#_some-header)[link text](/path/to/file#some-header) 中),然后运行 查找所有引用

查找所有对Markdown标题的引用

这将在引用视图中显示所有引用。如果您更喜欢不同的视图,您也可以使用Peek ReferencesGo to References命令。

VS Code 还支持在当前文件中查找所有对参考链接的引用。此功能支持以下内容:

  • ref中的[some text][ref]
  • 在简写链接 [ref] 中的 ref
  • 在链接定义中的 ref[ref]: http://example.com

查找所有使用Markdown链接引用的位置

Markdown: 查找所有文件引用

你现在还可以在当前工作区中找到对给定Markdown文件的所有引用。这同样包括跨文件的链接。

这可以通过几种方式触发:

  • 要查找对当前 Markdown 文件的引用,请使用 Markdown: 查找文件引用 命令。
  • 要在资源管理器中查找对Markdown文件的引用,请右键单击它并运行查找文件引用命令。
  • 在Markdown文件链接的文件部分运行查找所有引用,例如[text](/link/to/file.md)

这将列出给定文件被引用的所有位置,包括对该文件中头文件的引用。

Markdown: 查找所有对URL的引用

最后,我们还支持在当前工作区中查找使用给定URL的所有位置。

在Markdown文件中查找所有使用URL的位置

Markdown: 重命名标题

曾经在Markdown文件中更改标题,结果发现不小心破坏了所有指向它的链接吗?这就是我们新的Markdown重命名支持可以发挥作用的地方。

要开始操作,请将光标放在标题上,然后按F2开始重命名。输入标题的新文本,然后按Enter接受。这将更新当前标题以及当前工作区中所有已知的链接。

您可以在标题本身或链接到标题的标题组件上触发重命名。例如,some-header[link text](#_some-header)[link text](/path/to/file#some-header) 中。

你也可以在Markdown中重命名引用链接。这将更新当前Markdown文件中的所有引用链接:

使用F2重命名Markdown链接引用

Markdown: 重命名文件

为了完善我们新的Markdown重命名支持,您现在可以在Markdown链接中的文件路径上使用F2来重命名磁盘上的文件,并更新所有Markdown引用:

通过按F2在链接中的文件路径上重命名文件

目前,重命名文件仅支持在文本编辑器中使用F2键对文件链接进行操作。在未来的迭代中,我们还计划支持在资源管理器中触发重命名时更新链接。

JSON

新设置 json.validate.enable 允许您关闭 JSON 验证。

网页版VS Code

打开远程仓库选择器

VS Code for the Web 现在在使用打开远程仓库选择器时,会尊重window.openFoldersInNewWindow设置。这使得选择器的行为与其他版本的 VS Code 保持一致,并替换了在新窗口中打开快速选择项按钮。

对扩展的贡献

Java

嵌入提示

包含在Java扩展包中的Java语言服务现在支持嵌入提示,以显示方法签名的参数名称。

Java 参数名称内嵌提示有三种模式:

  • literals - 仅为字面量参数启用参数名称提示(默认)。
  • all - 为字面量和非字面量参数启用参数名称提示。
  • none - 禁用参数名称提示。

惰性变量解析

Debugger for Java 扩展现在支持 'lazy' 变量。此功能允许您推迟对昂贵变量的操作,直到您明确展开调试器 UI 以查看其值。

Jupyter

Jupyter PowerToys 扩展

我们很高兴宣布Jupyter PowerToys扩展,它为使用Jupyter笔记本提供了实验性功能。在首次发布中,我们已经原型化了以下功能:

  • 内核管理面板
  • 上下文帮助
  • 执行分组

我们希望您能尝试一下这些功能,并告诉我们您的想法,以便我们将来能够将它们完善成一个受支持的功能!

欲了解更多信息,请参阅vscode-jupyter-powertoys仓库中的README。

网页扩展

Jupyter 扩展现在可以作为网络扩展安装,以便与 vscode.dev 一起使用。目前功能有限,仅支持在不需要 https 的 Jupyter 服务器上运行的笔记本(.ipynb 文件)。

如果您想尝试该功能,请从本地机器启动 Jupyter:

jupyter --no-browser --NotebookApp.allow_origin_pat=https://.*\.vscode-cdn\.net

并使用命令Jupyter: Specify Jupyter server for connections连接到它。

在即将发布的版本中,我们将在浏览器中启用更多功能,包括:

  • 基于 'https' 的服务器
  • IntelliSense
  • 数据查看
  • 变量查看
  • 交互式窗口
  • IPyWidgets
  • 绘图查看
  • 导出

Jupyter内核处理

对Jupyter内核处理进行了多项更新:

  • 为了使内核崩溃时更加明显,扩展现在在单元格输出中显示此信息。
  • 现在,当在执行过程中检测到某些已知错误时,单元格输出中会提供故障排除指南。
  • 解决内核执行问题可能是一个棘手且耗时的过程。我们在我们的wiki上整理了一个故障排除部分,希望能帮助您更快地找到解决方案。我们的GitHub讨论论坛也是获取帮助的好资源。

Python

更改语言服务器时无需重新加载

Python 扩展现在支持更新 python.languageServer 设置的值,并自动重启语言服务器,而无需重新加载 VS Code。

黑色格式化程序扩展

现在有一个Black Formatter扩展,它使用black格式化程序为Python提供格式化支持。该扩展的预发布版本可供安装。

使用isort导入组织

新的isort扩展,它提供了使用isort库的导入组织功能。该扩展的预发布版本现已可用。

远程开发

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

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

GitHub 拉取请求和问题

继续在GitHub Pull Requests and Issues扩展上进行工作,该扩展允许您处理、创建和管理拉取请求和问题。此版本的亮点包括:

  • 多行注释
  • 在树中显示提交更改

查看扩展的0.42.0版本的更新日志以了解其他亮点。

预览功能

设置配置文件

在这个里程碑中,我们引入了设置配置文件,它是您的设置、扩展和UI自定义的集合。如果您自定义了VS Code,您现在可以将您的自定义导出到设置配置文件(mysetup.code-profile)并保存到您的计算机上,并与他人分享。

以下短视频展示了从VS Code导出设置配置文件:

您还可以导入设置配置文件以恢复您的自定义设置。

下面展示了如何将设置配置文件导入VS Code:

您可以将设置配置文件托管在云端,例如将其保存为公共的GitHub gist,并与他人分享URL。通过提供URL,可以导入设置配置文件。

注意: 目前,设置配置文件中仅包含以下UI自定义。未来将添加更多内容。

  • 状态栏项目可见性
  • 活动栏、底部面板和侧边面板项目的可见性和顺序
  • 视图的可见性、位置和顺序

TypeScript 4.7 支持

此更新包括对即将发布的TypeScript 4.7版本的支持。有关TypeScript团队当前工作的更多详细信息,请参阅TypeScript 4.7迭代计划。一些亮点包括:

  • 使用新的转到源定义命令直接跳转到库函数的JavaScript实现。您可以在TypeScript问题#49003中了解更多关于此功能的信息并分享反馈。
  • 用于完成作为对象成员的方法的代码片段。
  • 分组感知的导入组织.

要开始使用 TypeScript 4.7 的夜间构建版本,请安装 TypeScript Nightly 扩展。

扩展开发

标签页 API

我们已经完成了标签页API的只读部分(也支持关闭标签页),标志着我们最受欢迎的问题之一microsoft/vscode#15178的完成。这暴露了诸如有多少组、打开了哪些标签页、哪些标签页是活动的、标签页代表的编辑器类型等信息!更多信息可以在vscode.d.ts文件中找到,API的入口点是window.tabGroups

笔记本更改和保存事件

我们已经确定了两个与笔记本相关的事件:

  • vscode.workspace.onDidSaveNotebookDocument - 每当笔记本保存时触发的事件。
  • vscode.workspace.onDidChangeNotebookDocument - 一个事件,每当笔记本发生变化时触发。这包括结构性变化,如添加或删除单元格,以及单元格变化,如更改输出或元数据。

支持非递归工作区文件监视器

在之前的里程碑中,我们宣布createFileSystemWatcher API 可以用于监视磁盘上的任何文件夹,只要该文件夹不在打开的工作区内。我们现在放宽了这一限制,允许非递归文件监视器在任何地方使用,甚至在打开的工作区内。非递归监视器的优势在于,配置的排除设置(files.watcherExclude)不适用,因此您可以确保文件监视器只会为您订阅的路径发出通知。

我们正在努力实现对带有自定义排除规则的递归观察器的全面支持,敬请期待更多信息!

用户体验指南

扩展作者的UX指南已经重新设计,拥有自己的目录,您可以在其中找到使用各种VS Code用户界面元素的最佳实践。特定主题讨论了在创建扩展UI时推荐的“应该做”和“不应该做”,以便它们能够无缝集成到VS Code中。

代码.visualstudio.com上的命令面板用户体验指南

运行扩展测试

之前,VS Code 在测试运行结束后会立即退出扩展主机进程。现在,当运行扩展测试时,VS Code 会首先经过常规的 deactivate 流程,然后才会退出。这使得生成进程的扩展能够更好地自行清理。

将文件拖放到自定义树中

基于最近定稿的树形拖放API,我们现在支持使用text/uri-list MIME类型从操作系统将文件拖放到扩展树视图中。

调试器扩展编写

支持暂停调试对象和支持终止调试对象的用户界面

disconnect 请求有两个额外的选项,使客户端能够在断开连接时控制调试对象的行为:

  • suspendDebuggee 表示调试对象在断开连接后是否应保持挂起状态。
  • terminateDebuggee 表示当调试器断开连接时,是否应终止被调试对象。

调试适配器可以使用功能supportSuspendDebuggeesupportTerminateDebuggee来表示它支持这些选项。当支持时,调试工具栏中的停止按钮旁边将出现一个下拉菜单,其中包含额外的断开连接命令。

例如,在一个“启动”类型的调试会话中,对于一个支持这两种功能的调试适配器,默认的工具栏按钮将是正常的停止按钮,但下拉菜单将包括断开连接 (terminateDebuggee: false) 和 断开连接并暂停 (terminateDebuggee: false, suspendDebuggee: true)。

带有额外断开连接命令的下拉菜单

语言服务器协议

对笔记本和拉取诊断的支持已从提议状态移出,准备发布3.17版本。相应的客户端和服务器库的新版本已发布到npm。

提议的API

每个里程碑都伴随着新的提议API,扩展作者可以尝试它们。一如既往,我们希望得到您的反馈。以下是尝试提议API的步骤:

  1. 找到一个你想尝试的提案并将其名称添加到package.json#enabledApiProposals中。
  2. 使用最新的vscode-dts并运行vscode-dts dev。它会将相应的d.ts文件下载到您的工作区中。
  3. 您现在可以针对提案进行编程。

你不能发布使用提议API的扩展。在下一个版本中可能会有破坏性的更改,我们从不希望破坏现有的扩展。

拖入编辑器

提议的文本编辑器拖放API允许扩展处理拖放到文本编辑器中的操作。这些拖放事件可以来自VS Code内部——例如将文件从VS Code的资源管理器拖放到文本编辑器中——或者可以通过将文件从操作系统拖放到VS Code中生成。

本次迭代中,我们已将此API切换为基于提供者的模型。我们还创建了一个新的扩展示例,展示了如何使用此API。

视图上的徽章

新的提案为视图添加徽章现在可以试用。类似于VS Code核心提供的视图上的徽章工作方式,扩展可以使用此API提案为视图添加数字徽章。

工程

用于Electron冒烟测试的Playwright

我们长期以来一直在使用Playwright进行基于网页的冒烟测试。然而,我们基于Electron的冒烟测试仍然依赖于我们自己的定制解决方案。随着Playwright中的Electron支持,我们能够重用大部分基于网页的冒烟测试代码,并将其用于我们的Electron冒烟测试。我们很高兴现在可以使用Trace Viewer来诊断失败的冒烟测试。

扩展的新本地化流程

VS Code 支持多种显示语言,您可以通过安装语言包来启用这些语言。这对于本地化 VS Code 本身和内置扩展非常有用。在这个迭代中,我们已经开始标准化团队拥有的非内置扩展的本地化工作。您将在GitHub RepositoriesAzure Repos 扩展中看到这一努力的结果,因为它们的共同依赖扩展 Remote Repositories 是第一个加入此功能的扩展。

下一次迭代,我们将继续这一标准化工作,并引入更多扩展。Python 扩展目前正在进行中,GitHub Repositories 和 Azure Repos 将很快跟进。我们希望达到一个目标,即团队拥有的每个扩展都能本地化,并且未来创建的任何新扩展都能轻松引入,以便非英语母语的用户能在 VS Code 中获得良好的体验。

文档

在VS Code中使用Rust

有一个新的Visual Studio Code中的Rust主题,描述了在VS Code中使用Rust编程语言的支持,以及rust-analyzer扩展。rust-analyzer扩展包括丰富的语言功能,如代码补全、代码检查、重构、调试等。

Visual Studio Code 的 rust-analyzer 扩展详情面板

显著的修复

  • 114844 允许从崩溃对话框中跳过恢复上一个会话的编辑器
  • 127936 允许在启动时将 files.encoding 设置为特定语言的文件设置
  • 138461 在React文件中,Emmet自动补全在一对[ ]内的内容是错误的
  • 139392 确认清除最近的项目
  • 139950 当遇到断点时,光标应移动到该行
  • 145265 Windows 上的终端使用 cmd /C,这会破坏传递的参数
  • 146406 终端中的Powerline符号颜色显示错误
  • 146977 在 macOS 上的 Info.plist 中声明文件夹支持
  • 147104 无法完成登录GitHub

感谢您

最后但同样重要的是,向VS Code的贡献者们表示衷心的感谢

Web扩展

扩展作者用于启用作为web extensions运行代码的扩展(以下列表在2022年3月28日至2022年5月1日之间):

问题跟踪

对我们问题跟踪的贡献:

拉取请求

vscode 的贡献:

vscode-css-languageservice 的贡献:

vscode-generator-code 的贡献:

vscode-js-debug 的贡献:

vscode-pull-request-github 的贡献:

debug-adapter-protocol的贡献:

language-server-protocol的贡献:

monaco-editor的贡献: