2023 年 6 月(版本 1.80)

更新 1.80.1:此更新修复了以下 问题

更新 1.80.2:此更新修复了此安全 问题

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


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

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

内测版:想尽快尝试新功能?您可以下载每晚的内测版构建,并尽快尝试最新的更新。

辅助功能

可访问视图

新增命令打开无障碍视图⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2))允许屏幕阅读器用户逐字符、逐行检查内容。当悬停提示或聊天面板回复获得焦点时调用此命令。

无障碍帮助改进

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

可在帮助菜单内禁用无障碍帮助菜单提示并打开更多文档(如有)。

笔记本无障碍帮助

为笔记本新增了无障碍帮助菜单,提供有关编辑器布局以及如何导航和与笔记本交互的信息。

聊天音频提示

现在可以为 GitHub Copilot 聊天体验提供音频提示,可通过 audioCues.chatRequestSentaudioCues.chatResponsePendingaudioCues.chatResponseReceived 启用。

聊天无障碍改进

聊天回复会在收到后立即提供给屏幕阅读器,内联和聊天面板无障碍帮助菜单包含有关预期内容以及如何与每个功能交互的更详细信息。

设置编辑器 alt 文字改进

设置编辑器(通过首选项:打开设置 (UI) 命令访问)现在在使用屏幕阅读器导航时不再那么啰嗦。特别是,设置范围切换器现在会播报实际的范围名称而不是文件路径,并且设置描述的 alt 文字已清理,不再包含原始 Markdown 格式。

Navigating through the Settings editor with NVDA on Windows

工作台

预览视频自动播放和循环播放

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

  • mediaPreview.video.autoPlay — 启用视频自动播放。自动播放的视频会自动静音。
  • mediaPreview.video.loop — 启用视频循环播放。

这些设置默认处于关闭状态。

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

随着上个里程碑版本中 只读模式 的引入,编辑器可能会因工作区配置而变为只读。

在本里程碑中,我们增强了尝试在只读编辑器中键入时的通知消息,并在某些情况下提供了更改 files.readonly 设置的链接。

默认文件对话框位置

新增设置 files.dialog.defaultPath,可以配置打开文件对话框(例如打开或保存文件/文件夹时)显示的默认位置。此默认值仅作为在没有其他已知位置时的后备(例如在空 VS Code 窗口中)。

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

新增设置 workbench.editor.doubleClickTabToToggleEditorGroupSizes,用于禁用双击标签页时切换编辑器组大小的功能。

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

新增设置 workbench.editor.tabSizingFixedMinWidth,用于控制当 workbench.editor.tabSizing 设置为 fixed 时标签页的最小尺寸。1.79 版本说明 中更详细地解释了固定标签页宽度。

编辑器组拆分大小调整变更为“自动”

workbench.editor.splitSizing 设置新增了一个名为 auto 的值,这也是新的默认值。在此模式下,仅当没有编辑器组被调整过大小时,拆分编辑器组才会将可用空间平均分配给所有编辑器组。否则,拆分出的编辑器组空间将被减半并放入新的编辑器组中。

此更改的目的是在拆分时不会破坏您创建的布局,但在其他情况下仍保持之前平均分配空间的默认行为。

搜索 .gitignore 排除行为

search.useIgnoreFiles 设置为 true 时,无论工作区是否初始化为 Git 存储库,现在都会遵循工作区的 .gitignore

评论的最大高度

设置 comments.maxHeight 允许您禁用评论的最大高度限制(例如在使用 GitHub Pull Requests and Issues 扩展时显示的评论)。

排查 VS Code 问题

命令面板中新增了帮助:排查问题命令,用于帮助您排查 VS Code 中的问题。启动的工作流程通过使用特殊的故障排除 配置文件 和 VS Code 的 扩展二分查找 功能来帮助您确定问题原因。扩展二分查找将在您指出问题是否重现时,通过二分法启用和禁用已安装的扩展,从而缩小导致问题的扩展范围,并帮助您在报告问题时提供正确的信息。

禁用 Chromium 沙箱

如果您在无法避免以特权用户身份启动 VS Code 桌面版的情况下(例如在 Linux 上使用 sudo 启动,或在 Windows 的 AppLocker 环境中以管理员身份启动),则需要使用 --no-sandbox --disable-gpu-sandbox 命令行选项启动 VS Code 才能使应用程序正常工作。

根据 issue #184687 中的反馈,现在有两个新设置可以更轻松地禁用 Chromium 沙箱:

  1. 新增命令行选项 --disable-chromium-sandbox 以禁用应用程序中所有进程的 Chromium 沙箱。此新选项可替代 --no-sandbox --disable-gpu-sandbox。此选项适用于运行时将来可能添加的任何新进程沙箱。

  2. 要在启动时持久禁用 Chromium 沙箱,请执行以下操作:

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

注意:除非您遇到问题,否则请勿使用此设置!

编辑器

缩放选区时跳过子词

扩展选区收缩选区命令现在可以配置为跳过子词。这是通过 editor.smartSelect.selectSubwords 设置实现的。默认情况下,子词会被选中,但现在可以禁用此功能。

  • true -> Co|deEditor 会选中 [Code]Editor,然后是 [CodeEditor]
  • false -> Co|deEditor 会选中 [CodeEditor]

当您频繁使用多光标和异构单词的扩展和收缩选区时,此设置会非常方便。

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

Emmet 为 JSX/TSX 文件支持了一组新的缩写。通过在 JSX 或 TSX 文件中键入 ..test 并展开缩写,将添加行 <div styleName={styles.test}></div>

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

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

然后在 JSX 或 TSX 文件中展开 ..test,您将得到 <div className={myStyles.test}></div>

可调整大小的内容悬停框

现在可以调整内容悬停框的大小。您可以将鼠标悬停在控件边框上并拖动装饰条以更改悬停框的大小。

终端

图像支持

上个版本中预览的终端图像功能现在默认启用。终端中的图像通常通过将图像像素数据编码为文本并经由特殊转义序列写入终端来工作。目前支持的协议是 sixeliTerm 首创的内联图像协议

要手动测试图像,您可以从 libsixel 存储库 下载并 cat 一个 .six 示例文件

Running cat with a sixel file will print an image

或者使用带有 .png、.gif 或 .jpg 文件的 imgcat python 包imgcat 脚本

Running imgcat with a png file will print the image

此功能可以通过以下方式禁用:

"terminal.integrated.enableImages": false

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

  • @@ git 范围链接

    Links from git in the style '@@ - + @@' are now detected

  • OCAML 的 Dune 风格范围链接

    Links in the style 'File "src/cli.js", lines 15-19' are now detected
    Links in the style 'File "src/cli.js", line 15, characters 8-34' are now detected
    Links in the style 'File "src/cli.js", lines 15-19, characters 8-34' are now detected

  • ESLint 风格的多行链接

    Links from ESLint that prefix a result with 'line:col' now are detected

  • Ripgrep 风格的多行链接

    Links from ripgrep that prefix a result with 'line:' now are detected

已弃用的 shell 和 shellArgs 设置已被移除

设置 terminal.integrated.shell.*terminal.integrated.shellArgs.* 在一年多前已被 终端配置文件 取代,现已删除。如果您仍在使用旧的 shellshellArgs 设置,以下是迁移前后的示例:

// 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": {
    // This will override the builtin bash profile
    "bash": {
      "path": "bash",
      "args": ["-l"],
      "icon": "terminal-bash"
    }
  }
}

测试

终端输出支持

以前,测试结果视图中显示的测试输出总是显示在嵌入式文本编辑器中。这剥夺了它在终端中运行时可能具有的丰富样式,例如颜色、样式和符号。在此版本中,我们在真实的 xterm.js 终端中显示输出。

Results shown in the Tests Results panel with green checkmarks

主题:Codesong(在vscode.dev上预览)

现在 测试结果 视图功能齐全,显示测试输出 命令已被重定向以打开测试结果视图,而不是创建临时终端。

源代码管理

关闭存储库改进

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

Notebook

远程开发保存性能改进

以前,在 VS Code 的远程扩展中保存笔记本需要将整个笔记本发送到扩展主机,这对于大型笔记本或启用自动保存时的慢速网络连接可能很慢。我们通过仅将笔记本的更改发送到扩展主机来提高了性能,从而加快了保存和执行速度。虽然此功能默认仍处于禁用状态,但我们确信很快就能启用它。要试用它,请将 "notebook.experimental.remoteSave": true 添加到您的设置中。有关更多详细信息,您可以关注 issue #172345

笔记本全局工具栏重构

笔记本编辑器的全局工具栏已重写以采用工作台工具栏,从而允许用户更自由地自定义工具栏操作。用户现在可以右键单击并从工具栏中隐藏操作。右键单击工具栏中的操作会显示隐藏该操作的选项,以及重置菜单和恢复隐藏操作的选项。

工具栏继续支持所有三种标签策略:alwaysneverdynamic。您可以通过设置 notebook.globalToolbarShowLabel 更改标签策略。

主题:Monokai Pro (Filter Ristretto) (在 vscode.dev 上预览)

交互式窗口备份和恢复

Python 交互式窗口现在已与 热退出 (hot exit) 功能完全集成,并在 VS Code 重载之间恢复编辑器状态。interactiveWindow.restore 设置不再生效,已被删除。

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

主题:Bearded Theme feat. Gold D Raynh (在 vscode.dev 上预览)

语言

Markdown 从预览中复制图像

Markdown 预览中图像的新上下文菜单允许您从预览中复制图像并将其粘贴到 Markdown 编辑器中。复制图像时,预览编辑器必须获得焦点。

新的 markdown.editor.pasteUrlAsFormattedLink.enabled 设置(默认 false)允许您将链接插入到 Markdown 编辑器中,并自动格式化为 Markdown 链接。如果您选择一些文本来替换为粘贴的链接,所选文本将自动成为链接的标题。如果没有选择文本,则会有默认的链接标题。此功能适用于外部浏览器链接以及工作区内的文件。

您必须启用 editor.pasteAs.enabled 设置才能使此新设置生效。

远程开发

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

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

远程菜单

在本里程碑中,我们更新了远程菜单,增加了帮助您通过安装必要扩展来快速安装和开始远程连接(SSH、Remote TunnelsGitHub Codespaces 等)的条目。欢迎页面上还有一个 连接到... 开始条目,帮助您从 VS Code 桌面版开始远程连接。

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

通过 Tunnel 使用 WSL

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

Remote Tunnels view with a Connect to WSL option

主题:Codesong(在vscode.dev上预览)

此功能现在不仅适用于 VS Code 桌面版,也适用于 vscode.dev。如果您已经在 Windows 设备上运行隧道,请务必将 VS Code 更新到最新版本以启用此功能。

对扩展的贡献

GitHub Copilot

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

注意:要获得对聊天视图、内联聊天和斜杠命令(例如 /search/createWorkspace)的访问权限,您需要安装 GitHub Copilot Chat 扩展。

创建工作区

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

然后,您可以使用 创建工作区 按钮来创建并打开项目目录作为新工作区。

Create and open workspace using GitHub Copilot

创建笔记本

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

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

生成搜索参数

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

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

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

Copilot YouTube 播放列表

YouTube 上的 VS Code Copilot 系列 中有关于 Copilot for PowerShell 的新内容。如果您错过了该系列,您还可以找到其他 特定语言 的讲座,以及在开发中使用 Copilot 时关于 有效提示词 的指导。

Python

Mypy 扩展

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

如果您对此新扩展有任何问题或希望提供反馈,可以在 Mypy 扩展 GitHub 存储库 中提交问题。

Debugpy 扩展

当 Python 扩展中移除了对 Python 2.7 和 Python 3.6 的支持时,我们收到了很多用户反馈,他们无法将代码库升级到最新的 Python 版本,也无法使用最新版本的 Python 扩展调试应用程序。为解决此问题,我们创建了一个名为 Debugpy 的单独 Python 调试器扩展。通过将调试器与 Python 扩展分离,您最终将能够在使用旧版本调试器的同时使用最新版本的 Python 扩展(通过禁用 扩展自动更新)。此扩展目前作为预发布版本提供预览,使用了最新版本的 debugpy。我们计划在不久的将来支持旧版本的 debugpy。

试用一下,如果一切正常,请 告诉我们。我们的计划是弃用内置调试功能,转而支持此单独的扩展。

Pylance 本地化

Pylance 扩展现已本地化!这意味着如果您安装了 语言包 并将其设置为 VS Code 中的活动语言,扩展的设置、命令和其他文本将被翻译为您首选的语言。

测试发现和运行重写

本月我们继续将我们的测试重写作为一项实验进行推广。提醒一下,此重写重新设计了扩展中 unittestpytest 的测试发现和执行背后的架构。该重写目前对 100% 的 VS Code Insiders 用户激活,并将于本月开始逐步推向稳定版。重写将很快被采用,但目前启用和关闭它的设置 pythonTestAdapter 仍然存在。

pytest 和 unittest 的动态运行结果

随着新实验的推出,pytest 和 unittest 的运行结果也将是动态的。以前,我们的测试结果仅在所有测试运行完成后才会返回,但现在有了此功能,测试结果会单独交付,让您可以实时看到测试通过和失败的情况。

第三方库的索引持久化

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

Python 3.7 支持的弃用

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

随着所有其他 Python 版本现在都处于年度发布节奏,我们预计一旦某个 Python 版本在随后的日历年的第一个 Python 扩展版本中达到 EOL,我们就会停止官方支持。例如,Python 3.8 计划于 2024 年 10 月达到 EOL,因此 2025 年的第一个 Python 扩展版本将停止官方支持。

GitHub 拉取请求和议题

GitHub Pull Requests and 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 可以在新的差异编辑器中启用隐藏未更改的区域。在审查包含大量未更改代码的大型差异时,此功能非常有用。

可以拖动或单击隐藏行块的边框,以从底部或顶部显示代码。

A screenshot of the "Collapse Unchanged Regions" feature in the new diff editor

显示插入/删除标记

插入/删除标记指示行中插入或删除了哪些词,当一行同时包含插入和删除内容时,这特别有用。

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

Deletion markers

改进的装饰

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

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

New Diff Editor highlighted changes

这是旧差异编辑器呈现装饰的方式(注意右侧第 57 行没有全宽背景色)

Current Diff Editor highlighted changes

同步差异更新

在新的差异编辑器中键入时,更改会启发式地立即应用,并在延迟后触发异步差异计算。在旧的差异编辑器中,更改不会立即应用,导致键入时出现明显的闪烁。

新 - 差异在键入时立即更新

Diffs update immediately when typing

旧 - 存在一些明显的闪烁

Diffs did only update after a delay in the old diff editor

移动检测

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

Move detection displays line connecting moved code block

由于移动检测仍处于实验阶段,预计未来版本会有重大变化。

扩展创作

SecretStorage API 现在使用 Electron API 而不是 keytar

SecretStorage API 多年来一直是存储密码、访问令牌等机密信息的推荐方式。在底层,它一直使用 keytar,这是一个用于在操作系统密钥环中存储机密的抽象层。由于 keytar 的弃用和归档,我们寻找了其他解决方案,特别是将目光投向我们的运行时 Electron。

在此版本中,我们开始了从 keytar 到 Electron 的 safeStorage API 的迁移。此切换对您应该是透明的,因为机密信息是从 keytar 中检索并恢复,然后通过 Electron 的 safeStorage API 保存的。将来,我们将移除此迁移,以便完全移除对 keytar 的依赖。

keytar 弃用计划

长期以来,VS Code 对 keytar(一个用于在操作系统密钥环中存储机密的抽象层)有很大的依赖。此外,我们在 VS Code 中包含了一个 keytar shim,在引入 SecretStorage API 之前,扩展依赖于它。keytar 本身已 被官方归档 且不再维护... 为了通过 依赖已归档的存储机密软件来推广良好的安全实践,我们正在制定一个从 VS Code 中移除此 shim 的计划。

我们已经直接联系了仍然使用此 keytar shim 的流行扩展的作者,他们正在致力于将其移除。我们想在此处以及在 我们的 GitHub Discussions 中传达此信息,以便我们尽量减少此更改带来的干扰。我们知道这并不是什么好消息,因为我们也花费了相当多的工作来移除对 keytar 的依赖,但我们相信这是确保扩展使用安全 API 的正确做法。

如果您在扩展中直接使用 keytar,有几种方案可以考虑:

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

时间线:目前的计划是在 8 月初 从 VS Code Insiders 中移除此 shim,这意味着 2023 年 9 月 的稳定版本将是第一个没有此 shim 的版本。

这项工作正在 issue #115215 中进行跟踪,如果您有任何疑问,请随时在 我们的 GitHub Discussions 中提出。

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

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

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

树形复选框 API

TreeItem checkboxState API 已最终确定。默认情况下,具有复选框的树项的选中状态由 VS Code 管理。可以通过将 TreeViewOptions 属性 manageCheckboxStateManually 设置为 true 来更改此行为。设置 manageCheckboxStateManually 后,扩展负责管理父级和子级复选框的勾选和取消勾选。

EnvironmentVariableCollection.description

此新 API 允许为 EnvironmentVariableCollection 指定描述,该描述显示在终端标签页的悬停处,以解释该更改到底在做什么。

// Example of what the Git extension could use
context.environmentVariableCollection.description =
  'An explanation of what the environment changes do';

您可以在内置 Git 扩展中查看此 API 的实际效果,它现在描述了该更改的作用。

Environment variable collection descriptions are explained in a terminal tab's hover

提议的 API

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

  1. 查找您要尝试的提议并将其名称添加到 package.json#enabledApiProposals
  2. 使用最新的 @vscode/dts 并运行 npx @vscode/dts dev。它会将相应的 d.ts 文件下载到您的工作区。
  3. 您现在可以根据该提议进行编程。

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

文件系统提供程序的只读消息

当您 registerFileSystemProvider 时,您可以提供一条只读消息,而不是简单地将文件系统标记为只读。当用户尝试编辑来自该提供程序的文件时,编辑器中会显示以下消息。

Read-only file system message

工程

导出符号的名称混淆

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

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

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

作为构建的一部分,我们消耗来自其他位置的二进制资源,例如用于我们远程服务器的 Node.js、来自 Marketplace 的内置扩展以及 Electron。在本里程碑中,我们通过验证 vscode GitHub 存储库中签入的 SHA256 校验和来确保这些二进制资源的完整性。

新的 Linux 性能机器

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

在本里程碑中,我们将一台 Linux 机器添加到测试集中,报告 Ubuntu 22 上的启动时间。

Linux performance machine

事件发射器优化

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

您可以在 issue #185789 中阅读关于此改进的更多信息。

终端 pty 主机改进

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

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

文档

C# 新主题

您可以通过一套新的 C# 文章,利用 C# Dev Kit 扩展了解 VS Code 中的 C# 开发。在那里,您将找到解释如何 入门 的主题,描述扩展的语言功能(代码导航重构调试),并辅助开发生命周期,例如 项目 管理。

Glob 模式参考

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

值得注意的修复

  • 最大化集成终端时丢失文本 #134448
  • 支持 fish shell 集成自动注入 #139400

感谢

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

问题跟踪

对我们问题跟踪的贡献

拉取请求

vscode 的贡献

vscode-emmet-helper 的贡献

vscode-livepreview 的贡献

vscode-pull-request-github 的贡献

English 한국어 中文(简体) 中文(繁體)
© . This website operates independently and is not affiliated with or endorsed by Microsoft. All brand names, logos, and trademarks are the property of their respective owners.