本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

2023年6月 (版本 1.80)

更新 1.80.1:更新解决了这些问题

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

下载: Windows: x64 Arm64 | Mac: 通用 Intel | Linux: deb rpm tarball Arm snap


欢迎来到2023年6月的Visual Studio Code发布版本。这个版本有很多更新,我们希望你会喜欢,其中一些主要亮点包括:

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

内部人士: 想尽快尝试新功能吗?你可以下载 内部人士 构建版,并在最新更新可用时立即尝试。

无障碍

无障碍视图

一个新的命令打开无障碍视图 (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)) 使屏幕阅读器用户能够逐字符、逐行检查内容。在悬停或聊天面板响应聚焦时调用此命令。

无障碍帮助改进

一个新的命令 打开无障碍帮助 (⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1)) 根据当前上下文打开帮助菜单。目前适用于编辑器、终端、笔记本、聊天面板和内联聊天功能。

禁用辅助功能帮助菜单提示,并从帮助菜单中打开任何附加文档。

笔记本无障碍帮助

为笔记本添加了一个新的无障碍帮助菜单,提供有关编辑器布局和导航及与笔记本互动的信息。

聊天音频提示

现在有音频提示用于GitHub Copilot聊天体验,可以通过启用音频提示.聊天请求已发送音频提示.聊天响应待定,和音频提示.聊天响应已收到输入:.

聊天无障碍改进

聊天响应会立即提供给屏幕阅读器,并且内联和聊天面板的无障碍帮助菜单包含有关预期内容和如何与每个功能进行交互的更详细信息。

设置编辑器替代文本改进

设置编辑器(通过偏好设置:打开设置(用户界面)命令访问)现在在使用屏幕阅读器导航时更简洁。特别是,设置范围切换器会宣布实际的范围名称而不是文件路径,设置描述的alt文本已被清理,不包括原始Markdown格式。

在 Windows 系统上使用 NVDA 导航设置编辑器

工作台

自动播放和循环预览视频

您现在可以为内置视频文件预览启用视频自动播放和循环播放。相关设置如下:

  • 媒体预览.视频.自动播放— 启用视频自动播放。自动播放的视频会自动静音。
  • 媒体预览视频循环播放— 启用视频循环播放。

这些设置默认是关闭的。

编辑器只读时提供更多帮助

随着VS Code在上一个里程碑中引入只读模式,编辑器可能会由于工作区配置而成为只读。

这个里程碑,我们增强了在你尝试在只读编辑器中输入时编辑器中的通知消息,并在某些情况下提供了一个链接来更改文件.只读设置。

默认文件对话框位置

一个新的设置files.dialog.defaultPath可以配置文件对话框(例如打开或保存文件或文件夹时)打开时应显示的默认位置。此默认值仅在不知道其他位置时(例如在空的 VS Code Windows中)作为备用位置使用。

禁用标签双击时最大化编辑器组

一个新的设置工作台.编辑器.双击标签以切换编辑器组大小禁用双击编辑器组标签以在最大化和恢复之间切换。

控制固定宽度标签的最小宽度

一个新的设置工作台.编辑器.标签尺寸固定最小宽度控制标签的最小尺寸工作台.编辑器.标签大小设置为修复。固定制表宽度在1.79版本说明中解释得更详细。

编辑组拆分大小更改为“自动”

一个新的值工作台编辑器拆分大小设置称为自动是新的默认设置。在这种模式下,如果未调整任何编辑器组的大小,则拆分编辑器组将可用大小均匀分配给所有编辑器组。否则,拆分编辑器组的空间将平分并放置在新的编辑器组中。

进行此更改的目的是在您拆分布局时不会破坏您创建的布局,但仍会保持以前默认的均匀分配大小的行为。

搜索 .gitignore 排除行为

搜索.使用忽略文件设置为工作区的.gitignore现在无论工作区是否初始化为Git仓库,都得到了尊重。

评论的最大高度

设定评论.最大高度 可以禁用评论的最大高度限制,例如在使用 GitHub Pull Requests and Issues 扩展时显示的拉取请求的限制。

在 VS Code 中排除问题

有一个新的命令帮助:排除问题在命令面板中,可以帮助您在 VS Code 中排除问题。启动的工作流使用特殊的排除配置文件和 VS Code 的扩展 bisect功能来帮助您识别问题的原因。扩展 bisect 会在您指示问题是否重现时,在二分查找中启用和禁用您安装的扩展。这缩小了导致问题的扩展,并在报告问题时帮助您提供正确的信息。

禁用Chromium沙盒

如果你有不可避免的情况需要以提升用户权限启动 VS Code 桌面版,例如你正在以提升用户权限启动 VS Code,超级用户权限在 Linux 上或在 Windows 的 AppLocker 环境中以管理员身份运行,那么你需要使用 启动 VS Code--禁用沙盒 --禁用GPU沙盒命令行选项以使应用程序按预期工作。

根据问题 #184687中的反馈,现在有两个新的设置,使您在需要禁用 Chromium 沙盒时更加方便:

  1. 一个新的命令行选项--禁用Chromium沙盒禁用应用程序中所有进程的Chromium沙盒。这个新选项可以作为的替代品--禁用沙盒 --禁用GPU沙盒此选项适用于未来版本中运行时可能添加的任何新进程沙盒。

  2. 要永久禁用Chromium沙盒,请执行以下操作:

    • 打开命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)).
    • 运行 首选项:配置运行时参数 命令。
    • 此命令打开一个argv.json用于配置运行时参数的文件。你可能会在那里看到一些默认参数。
    • 添加"disable-chromium-sandbox": true输入:.
    • 重启 VS Code。

注意: 除非您遇到问题,请不要使用此设置!

编辑器

在缩小和扩展选择时跳过子词

扩展缩小选择命令现在可以配置为跳过子词。这通过编辑器.智能选择.选择子词设置。默认情况下选择子词,但现在可以禁用。

  • - 摘要输入:|deEditor 选择[代码]编辑器,然后[代码编辑器]
  • - 摘要输入:|deEditor 选择[代码编辑器]

这个设置在你使用多个光标和异构词时频繁扩展和缩小选择区域时非常方便。

改进了 JSX/TSX 中 CSS 模块的 Emmet 支持

Emmet 支持 JSX/TSX 文件的一组新缩写。通过输入..测试在 JSX 或 TSX 文件中,展开缩写后,该行添加。

属性名称和值前缀可以通过 emmet.syntaxProfiles设置。通过配置emmet.syntaxProfiles设置如下:

"emmet.syntaxProfiles": {
    "jsx": {
        "markup.attributes": {
            "class*": "className",
        },
        "markup.valuePrefix": {
            "class*": "myStyles"
        }
    }
}

然后展开这个缩写..测试在 JSX 或 TSX 文件中,你得到缩写相反。

可调整内容悬停

现在可以调整内容悬停控制的大小。悬停在控制边界上并拖动边框以更改悬停的大小。

终端

图像支持

终端中的图像在上一次发布时进行了预览,现在默认启用。终端中的图像通常通过将图像像素数据编码为文本,然后通过特殊的转义序列写入终端来工作。当前支持的协议是sixeliTerm提出的内联图像协议。

要手动测试图像,您可以下载并一个.六 示例文件来自 libsixel 仓库

使用sixel文件运行猫将打印一张图像

或者使用imgcat python包imgcat脚本与.png、.gif或.jpg文件:

运行 imgcat 并传入一个 png 文件将打印图像

此功能可以通过设置禁用:

"terminal.integrated.enableImages" false

现在支持新的链接格式,包括需要向上扫描以找到文件的链接和具有范围的链接(行到行或字符到字符)。

  • @@ git 范围链接:

    现在可以检测到形如'@@ - + @@'的git链接

  • OCAML 的 Dune-style 范围链接:

    链接现在检测到“文件“src/cli.js”,第15-19行”的样式。
    链接现在检测到“文件“src/cli.js”,第15行,字符8-34”
    链接现在检测到“文件“src/cli.js”,行15-19,字符8-34”的样式。

  • ESLint风格的多行链接:

    ESLint中以'line:col'前缀的结果链接现在可以被检测到

  • Ripgrep风格的多行链接:

    来自 ripgrep 的链接现在会检测到结果以 'line:' 开头

已废弃的 shell 和 shellArgs 设置已移除

设置终端.集成.外壳.*终端.集成.外壳参数.* 已被 终端配置文件 替换超过一年,并且刚刚被移除。如果你仍在使用旧的 外壳参数设置,这里有一个迁移前/后的示例:

// Before
{
  "terminal.integrated.shell.windows": "pwsh.exe",
  "terminal.integrated.shellArgs.windows": ["-Login"],

  "terminal.integrated.shell.osx": "bash",
  "terminal.integrated.shellArgs.osx": ["-l"],
}

// After
{
  "terminal.integrated.profiles.windows": {
    "PowerShell Login": {
      // Source is a special property that will use VS Code's logic to detect
      // the PowerShell or Git Bash executable.
      "source": "PowerShell",
      "args": ["-Login"],
      "icon": "terminal-powershell"
    },
  },

  "terminal.integrated.profiles.osx": {
    // 这将覆盖内置的bash配置文件
    "bash": {
      "path": "bash",
      "args": ["-l"],
      "icon": "terminal-bash"
    }
  }
}

测试

终端输出支持

之前,测试输出在测试结果视图中总是显示在嵌入的文本编辑器中。这去掉了它在终端中运行时可能具有的颜色、样式和符号等丰富样式。在本次发布中,我们将在一个真正的xterm.js终端中显示输出。

测试结果面板中显示的结果带有绿色复选标记

主题: Codesong (预览于 vscode.dev)

既然测试结果视图已经具备了完整功能,显示测试输出的命令已重定向为打开测试结果视图,而不是创建一个临时终端。

源代码管理

关闭仓库改进

在过去,用户可以使用Git: 关闭仓库命令或源代码控制视图中的关闭仓库操作来关闭仓库,但有一些操作(例如从已关闭的仓库中打开文件)会重新打开已关闭的仓库。在这一里程碑中,我们进行了一些改进,以便仓库的关闭状态现在在每个工作区中持久化。用户可以使用Git: 重新打开已关闭的仓库...命令来重新打开已关闭的仓库。

笔记本电脑

改进了远程开发的保存性能

之前,在 VS Code 的 Remote 扩展中保存笔记本需要将整个笔记本发送到扩展主机,对于大型笔记本或启用自动保存的慢速网络连接来说可能会很慢。我们通过只将笔记本的更改发送到扩展主机来提高性能,从而实现更快的笔记本保存和执行。虽然这个功能默认仍然禁用,但我们有信心很快就能启用它。要尝试一下,请添加"notebook.experimental.remoteSave": true 到你的设置。欲了解更多信息,你可以关注 问题 #172345

笔记本全局工具栏重做

笔记本编辑器的全局工具栏已被重写,采用工作台工具栏,允许用户对工具栏操作进行更大的自定义。用户现在可以右键单击并隐藏工具栏中的操作。在工具栏内右键单击某个操作会显示隐藏该操作的选项,并且还可以重置菜单并恢复隐藏的操作。

工具栏继续适用于所有三种标签策略:总是从不,和动态你可以通过设置更改标签策略notebook.globalToolbarShowLabel输入:.

主题: Monokai Pro (过滤器 Ristretto) (预览于 vscode.dev)

交互式Windows 备份和恢复

Python 交互Windows现在完全集成了 热退出 功能,并在 VS Code 重新加载之间恢复编辑器状态。 交互Windows. 恢复设置不再有任何效果,已被移除。

如果禁用了热退出,在关闭 VS Code 时会有一个提示,允许您保存编辑器状态为一个.ipynb文件。

_主题: 胡须主题,特色是Gold D Raynh (预览于 vscode.dev)

语言

复制图像从预览

在Markdown预览中,为图像创建了一个新的上下文菜单,允许您从预览中复制图像并粘贴到Markdown编辑器中。复制图像时,预览编辑器必须是活动Windows。

新的markdown.editor.pasteUrlAsFormattedLink.enabled设置(默认) 可以在 Markdown 编辑器中插入自动格式化的链接。如果你选择了一些将被粘贴链接替换的文本,所选文本将自动成为链接的标题。如果未选择任何文本,将有一个默认的链接标题。此功能适用于外部浏览器链接以及工作区内的文件。

您必须启用该设置编辑器.粘贴为.启用为了使这个新设置生效。

远程开发

这些远程开发扩展允许您使用开发容器、通过SSH或远程隧道连接远程机器,或者使用Windows子系统 for Linux(WSL)作为功能齐全的开发环境。

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

遥控菜单

这个里程碑,我们更新了远程菜单,添加了帮助您快速安装和开始使用远程连接(SSH,远程隧道GitHub Codespaces等)的条目,通过安装必要的扩展。欢迎页面上还有一个连接到...开始条目,帮助您从VS Code桌面开始远程连接。

我们还更新了vscode.dev上的欢迎页面,增加了一个连接到远程隧道的入口。

通过隧道的WSL

在本次迭代中,我们预览了通过远程隧道连接到WSL。此功能在本次迭代中已稳定。如果您在安装了WSL的Windows机器上运行远程隧道,您可以选择直接从远程资源管理器连接到WSL。

远程隧道视图,带有连接到WSL的选项

主题: Codesong (预览于 vscode.dev)

此功能现在可以在VS Code桌面版以及vscode.dev上使用。如果您已经在Windows设备上运行了隧道,请确保将VS Code更新到最新版本以启用此功能。

对扩展的贡献

GitHub Copilot

我们在 Chat 视图中引入了仅预览的斜线命令,以帮助您创建项目和笔记本,并在您的工作区中搜索文本。

注意:要访问聊天视图、内联聊天和斜线命令(例如 /搜索/创建工作区),你需要安装GitHub Copilot Chat扩展。

创建工作区

你可以要求 Copilot 为流行的项目类型创建工作区/创建工作区斜线命令。 Copilot将首先为您的请求生成目录结构。

然后你可以使用创建工作区按钮来创建并打开项目目录作为一个新的工作区。

使用 GitHub Copilot 创建并打开工作区

创建笔记本

你可以要求 Copilot 根据你的要求创建 Jupyter 笔记本/创建笔记本斜线命令。 Copilot将根据您的要求生成笔记本的大纲。

然后你可以使用创建笔记本命令来创建笔记本,并根据建议的大纲填充代码单元格。

生成搜索参数

您可以要求 Copilot 在工作区搜索中自动填充搜索参数。为此,请使用/搜索命令,随后是您希望在文本中查找的描述。

这些预览命令可以通过配置启用github.copilot.advanced设置如下:

"github.copilot.advanced": {
   "slashCommands": {
      "createWorkspace": true,
      "createNotebook": true,
      "search": true
   }
}

Copilot YouTube 播放列表

有一期新的内容涵盖了 PowerShell 的 CopilotVS Code Copilot 系列 中的 YouTube 上。如果你错过了这个系列,你还可以找到其他 特定语言 的演讲和指导,以及在使用 Copilot 进行开发时的 有效提示

Python

Mypy 扩展

现在有一个Mypy 型检查器扩展,使用mypy为 Python 提供型检查支持,作为预发布版本可用。这个新扩展对您的整个代码库提供错误和警告,而不仅仅是当前文件。它还使用dmypy进行更快的型检查。

如果您对这个新扩展有任何问题或希望提供反馈,您可以向 Mypy 扩展 GitHub 仓库 提交问题。

调试扩展

当从Python扩展中移除对Python 2.7和Python 3.6的支持时,我们收到了许多用户的反馈,他们无法将代码库升级到最新版本的Python,并且失去了使用最新版本Python扩展调试应用程序的能力。为了寻找解决方案,我们创建了一个名为Debugpy的单独Python调试扩展。通过将调试器与Python扩展分开,您最终可以使用最新版本的Python扩展,同时使用较旧版本的调试器(通过禁用扩展自动更新)。此扩展作为预发布版本提供,使用最新版本的debugpy。我们计划在未来支持旧版本的debugpy。

试试看并告知我们是否一切正常。我们的计划是放弃内置的调试功能,转而使用这个单独的扩展。

Pylance本地化

Pylance扩展现在已本地化!这意味着,如果安装并激活了语言包,则来自该扩展的设置、命令和其他文本将翻译成您首选的语言。

测试发现和运行重写

这个月我们继续推出测试重写实验。提醒一下,这个重写重新设计了测试发现和执行的架构,适用于扩展中的 unittestpytest。目前,重写已经对所有 VS Code Insiders 用户生效,并将在本月开始逐步引入稳定版。重写将很快被采用,但目前可以通过设置选择启用和禁用,python测试适配器仍然存在。

pytest和unittest的动态运行结果

与新的实验一起推出的是pytest和unittest的动态运行结果。以前,我们的测试结果只有在所有测试完成后才会返回一次,但现在有了这个功能,测试结果会分别交付,使您能够实时看到测试的通过和失败。

第三方库的索引持久性

Pylance 对安装在你环境中的第三方库进行索引,以启用 IntelliSense 功能,例如自动完成、自动导入、代码导航等。以前,每次在 VS Code 中打开工作区时,Pylance 都会索引这些库。现在,Pylance 会持久化这些库的索引,减少重复索引的过程的需求。

Python 3.7 支持的弃用

Python 3.7 达到 寿命终结 (EOL) 于 2023-06-27。因此,官方对 Python 扩展的 Python 3.7 支持将在 2023.18 版本的扩展(对应于 2023 年 9 月的 VS Code 发布)发布三个月后停止。没有计划积极移除对 Python 3.7 的支持,因此我们预计 Python 扩展将在可预见的未来继续与 Python 3.7 非官方地兼容。

由于所有其他版本的Python现在都采用每年发布一次的节奏,我们预计将在下一年日历年的第一个Python扩展发布时停止对Python版本的官方支持。例如,Python 3.8计划于2024年10月达到EOL,因此2025年的第一个Python扩展发布将停止官方支持。

GitHub 拉取请求和问题

GitHub Pull Requests 和 Issues扩展上取得了更多进展,该扩展允许您处理、创建和管理拉取请求和问题。

  • 在一个拉取请求中,最多可以加载1000条(之前是100条)评论线程。
  • 新的 VS Code API 提议允许您直接从未检出的差异中检出一个 PR。
  • 树上的头像和评论的形状是圆形而不是方形。

查看0.68.0版本的更新日志,了解其他亮点。

预览功能

TypeScript 5.2 支持

此更新包括对即将发布的TypeScript 5.2的支持。查看 TypeScript 5.2迭代计划了解TypeScript团队目前正在工作的详细信息。即将推出的工具亮点包括:

  • 一个新的内联常量重构。
  • 一个新的移动到文件重构,可以让你将符号移动到现有文件中。

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

新的差异编辑器

在这一轮迭代中,我们完成了对差异编辑器的重写。重写使我们能够添加一些新功能,提高性能并修复几个错误。

要试用新的差异编辑器,请添加"diffEditor.experimental.useVersion2": true到你的设置。新的差异编辑器仍然是实验性的,但在未来的更新中将最终取代当前的差异编辑器。

所有展示的功能都需要新的差异编辑器。

折叠不变区域

使用diffEditor.experimental.collapseUnchangedRegions为了在新的 diff 编辑器中隐藏未更改的区域。此功能在审阅包含大量未更改代码的大型 diff 时非常有用。

隐藏线条块的边界可以被拖动或点击,以显示底部或顶部的代码。

新差异编辑器中“折叠未更改的区域”功能的截图

显示插入/删除标记

插入/删除标记指示在一行中单词插入或删除的位置,这在一行既有插入也有删除时特别有用。

使用diffEditor.experimental.showEmptyDecorations启用/禁用插入和删除标记。

删除标记

改进的装饰品

全行删除/插入现在有一个全宽背景颜色。这显著减少了噪音。

这是一个展示新差异编辑器如何突出显示更改的示例:

新的差异编辑器突出显示更改

这就是旧的差异编辑器如何渲染装饰的(注意右边第57行没有全宽的背景颜色)。

当前Diff编辑器高亮显示的更改

同步 diff 更新

在新的差异编辑器中,输入时更改会立即进行启发式应用,并在延迟一段时间后触发异步差异计算。在旧的差异编辑器中,更改不会立即应用,导致输入时可见的闪烁。

新 - 输入时差异会立即更新:

输入时差异立即更新

旧 - 有一些明显的闪烁:

差异仅在旧差异编辑器延迟后更新

移动检测

此实验性功能检测文件中移动的代码块。使用diffEditor.experimental.showMoves要打开它。目前,只能检测简单的移动,但我们计划在未来改进这一功能。一旦选定移动的代码块,源位置和目标位置就会对齐,并显示它们之间的差异。

移动检测显示连接移动代码块的线

由于移动检测仍处于实验阶段,未来更新中可能会有重大变化。

扩展编写

SecretStorage API 现在使用 Electron API 通过 keytar

SecretStorage API已经成为存储密码、访问令牌等秘密的推荐方式多年。在底层,它使用了keytar,一个用于在操作系统密钥环中存储秘密的抽象层。由于keytar的弃用和归档,我们寻找其他解决方案来解决这个问题,特别地,我们寻找了Electron这样的运行时解决方案。

这个版本,我们开始从 keytar 转向 Electron 的 safeStorage API。这个切换对您来说应该是透明的,因为 secrets 会从 keytar 中检索并通过 Electron 的 安全存储API。在未来,我们会移除这个迁移,这样我们就可以完全移除对keytar的依赖。

键塔报废计划

目前,VS Code 对 keytar 有很大程度的依赖,这是一层用于在操作系统密钥环中存储密钥的抽象层。此外,我们还在 VS Code 中包含了 SecretStorage API 引入之前,扩展依赖的 keytar 模拟层。keytar 本身 已被正式存档 并且不再维护... 为了促进良好的安全实践, 依赖于存档的软件来存储密钥,我们正在制定一个计划,从 VS Code 中移除这个模拟层。

我们已经直接联系了仍在使用此 keytar shim 的热门扩展的扩展作者,并且他们正在努力摆脱它。我们希望在这里以及 我们的 GitHub 讨论 中进行沟通,以尽量减少由于此更改带来的干扰。我们知道这不是最好的消息,因为我们也需要大量工作来移除对 keytar 的依赖,但我们认为这是确保扩展使用安全 API 的正确做法。

如果您在扩展中直接使用 keytar,有几种选择供您考虑:

  • (推荐) 使用 VS Code 提供的 SecretStorage API,通过 ExtensionContext。此 API 是跨平台的,并且在 VS Code 支持的所有平台上都能工作。它也由 VS Code 团队维护,将继续维护,并且已经成为 VS Code API 的一部分多年。
  • (不推荐) 您可以将 keytar 模块与您的扩展捆绑在一起。请记住,keytar 是一个原生的 node 模块,这意味着您需要为每个需要支持的平台 发布一个特定于平台的扩展

时间线:目前的计划是将在 VS Code Insiders 中移除这个补丁,大约在八月初,这意味着2023年9月的稳定版本将是第一个没有该补丁的版本。

关于这项工作的进展正在 问题 #115215 中跟踪,如果您有任何问题,请随时在 我们的 GitHub Discussions 中提问。

改进了 vscode.fs.writeFile 本地文件的性能

当你在使用vscode.fs.writeFile将数据写入文件的API(你应该这样做!)现在对本地扩展主机的文件执行写操作将更快地解决。

以前扩展主机将写操作委托给VS Code客户端执行,但现在操作直接在扩展主机内执行,节省了往返时间。

树复选框 API

这个树项 复选框状态API 已经最终确定。默认情况下,带有复选框的树项目将由 VS Code 管理其选中状态。可以通过设置更改此行为。树视图选项财产手动管理复选框状态手动管理复选框状态如果设置,则扩展负责管理父复选框和子复选框的选中和取消选中。

环境变量集合描述

这个新的API允许指定描述环境变量集合在终端标签悬停时显示给用户,以解释更改的确切内容。

// Git 扩展可能需要的示例
上下文.环境变量集合.描述 =
  '环境更改的解释';

您可以在内置的Git扩展中看到API的运行情况,该扩展现在描述了更改的作用:

环境变量收集描述在终端标签的悬停中解释。

提议的API

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

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

您不能发布使用提议 API 的扩展。 下一次发布可能会有重大更改,我们绝不会破坏现有的扩展。

文件系统提供者只读消息

当你注册文件系统提供者, 你可以提供一个只读消息,而不是简单地将文件系统标记为只读。当用户尝试从该提供者编辑文件时,将在编辑器中显示以下消息。

只读文件系统消息

工程

导出符号的名称 mangling

去年我们开始混淆私有属性和方法的名称以减少我们的代码大小。我们现在也混淆导出的符号名称,这使我们的主工作台JavaScript文件的大小进一步减少了8%。

我们的名称整理构建步骤现在总共节省了3.9 MB的JavaScript,涵盖核心VS Code和我们内置的扩展。这一减少加快了下载速度,减少了VS Code的安装大小,并在每次启动VS Code时加快了代码加载速度。

Node.js、内置扩展和Electron的校验和完整性检查

作为我们构建的一部分,我们从其他位置消耗二进制资源,例如用于我们远程服务器的 Node.js 和来自市场和 Electron 的内置扩展。在这个里程碑中,我们通过与提交到的 SHA256 校验和进行验证来确保这些二进制资源的完整性。Visual Studio CodeGitHub 代码库。

新的Linux性能机器

我们非常重视 VS Code 的性能,特别是打开文本编辑器并看到闪烁光标所花费的时间。为了监控这个时间,我们在 Windows 和 macOS 上每天运行性能测试。

这个里程碑中,我们向测试集添加了一台Linux机器,并报告了Ubuntu 22的启动时间。

Linux 性能机器

事件发射器优化

VS Code 在我们的代码库中广泛使用事件发射器。我们在这一迭代中对这些发射器进行了优化,这稍微改善了启动时间和内存使用。

您可以在 问题 #185789 中阅读更多关于此改进的内容。

终端pty主机改进

"Pty Host" 进程管理终端启动的所有 shell 进程,并进行了几项改进:

  • 性能
    • 现在有一个与pty主机进程的直接通信渠道。这最大的变化是终端输入延迟的减少。
    • 重新连接(重新加载Windows)和进程复活(重启)性能通过减少不必要的调用和在多个终端恢复时并行化任务得到了提升。
    • 我们现在在终端启动和重新连接时收集性能指标,可以通过开发者:启动性能命令查看。
  • 诊断
    • 所有与终端相关的日志已从Windows输出通道移出,并进入新的终端输出通道。
    • 当跟踪日志级别开启时在Pty Host输出通道上,终端将记录所有RPC调用,这将有助于诊断终端问题。

文档

新的 C# 话题

您可以通过 C# Dev Kit 扩展在 VS Code 中学习 C# 开发,通过一组新的 C# 文章。在那里,您会找到解释如何 开始、描述扩展的语言特性(代码导航重构调试)以及辅助开发周期如 项目 管理的主题。

全局模式参考

VS Code 有自己专门的 glob 模式实现,它用于搜索文件和文件夹过滤等功能,让你自定义文件资源管理器视图等。要了解详细信息,你可以查看新的Glob 模式参考

重要修复

  • 最大化集成终端时失去文本#134448
  • 支持鱼壳集成自动注入#139400

谢谢

最后但同样重要的,向VS Code的贡献者们致以深深的谢意

问题跟踪

对我们的问题跟踪的贡献:

拉取请求

贡献于Visual Studio Code输入:

贡献于vscode-emmet-helper输入:

贡献于vscode-实时预览输入:

贡献于vscode-拉取请求-GitHub输入: