https://code.visualstudio.com/updates/v1_86

本次更新看点速览

  • WARNING: Linux 最低要求更新:从此版本开始,VSCode 桌面仅与基于 glibc 2.28 或更高版本以及 glibcxx 3.4.25 或更高版本的 Linux 发行版兼容,例如 Debian 10、RHEL 8 或 Ubuntu 20.04 以上版本。这将导致 VSCode 远程开发(Remote SSH)无法连接到遗留的 Linux 平台 😞,临时非降级解决办法参见: https://github.com/rectcircle/patch-vscode-1-86-for-old-linux。
  • command + + / command + - 窗口缩放的默认生效范围限制在当前窗口。
  • 自动保存行为优化:

    • 可以为某个语言单独配置自动保存选项,例如:

      {
          "[markdown]": {
              "files.autoSave": "afterDelay"
          }
      }
    • 新增 files.autoSaveWhenNoErrors 配置项,可在错误时禁用自动保存。

    • 新增 files.autoSaveWorkspaceFilesOnly 配置项,仅自动保存工作区文件。

  • 允许仅禁用某个扩展的通知消息。

    image

    image

  • 支持一键切换差异编辑器的左右。

  • 输出面板

    • 可通过 View: Toggle Word Wrap (或 option + z) 切换自动换行。
    • 在输出面板右上角溢出菜单 (三个点) 新增 Open Output in New Window 可以将会输出面板在新窗口中打开。
  • 在 diff 编辑器中 review 多个文件:

  • 源代码管理视图,右键上下文菜单可以关闭其他存储库。

  • 新增 触发断点 (Triggered breakpoints) 类型,该类型断点可以配置在某个断点命中后,这个断点才会命中。

  • 按住 alt (option) 单击编辑器左侧运行测试的按钮,将以 debug 模式运行测试。

Accessibility

  • 新增 accessibility.voice.keywordActivation 配置项。也可以通过 Hey Code" 快速唤起 GitHub Copilot Chat (需安装 GitHub Copilot ChatVS Code Speech 扩展)。

工作台 (Workbench)

  • 编辑器拖拽出来作为独立的窗口后,重启 VSCode 将以关闭之前的位置和大小恢复这些窗口。

  • 树视图中的粘性滚动特性默认开启。可通过 "workbench.tree.enableStickyScroll": false 配置项关闭,可通过 workbench.tree.stickyScrollMaxItemCount 最大粘性行数。

  • 之前,按 command + + / command + - 时,会缩放所有的窗口,现在这个快捷建的行为只会对当前窗口有效。如果仍想改变全局窗口的缩放,则可以通过修改 window.zoomLevel 配置项实现。如果想将 command + + 快捷键切换为旧的行为,可以修改 window.zoomPerWindow 配置项。

    此外,当进行缩放后当前后,可通过状态栏图标修改。

    image

  • 自动保存行为优化:

    • 可以为某个语言单独配置自动保存选项,例如:

      {
          "[markdown]": {
              "files.autoSave": "afterDelay"
          }
      }
    • 新增 files.autoSaveWhenNoErrors 配置项,可在错误时禁用自动保存。

    • 新增 files.autoSaveWorkspaceFilesOnly 配置项,仅自动保存工作区文件。

  • 允许仅禁用某个扩展的通知消息。

    image

    image

  • 支持一键切换差异编辑器的左右。

  • 使用 code 命令编辑标准输出时,默认会命令会自动退出,除非添加 --wait 命令,例如 echo Hello World | code -

  • 新增 window.customTitleBarVisibility 配置项,可配置自定义标题栏可见性,详见:原文

  • 新增 window.systemColorTheme 配置项,可以配置上下文菜单是 dark 还是 light 的行为。

    image

  • 新增 window.confirmSaveUntitledWorkspace 配置项,控制切换到新的工作空间时,当前工作空间是未保存的时,是否弹窗保存。

  • 输出面板

    • 可通过 View: Toggle Word Wrap (或 option + z) 切换自动换行。
    • 在输出面板右上角溢出菜单 (三个点) 新增 Open Output in New Window 可以将会输出面板在新窗口中打开。
  • code 命令,新增 --update-extensions 命令来更新已安装的扩展。

  • Quick Pick 视图的 Hover 视图切换为自定义渲染,以提升展示速度。

    image

在 diff 编辑器中 review 多个文件 (Review multiple files in diff editor)

  • GitHub Pull Requests and Issues 扩展可通过 "githubPullRequests.focusedMode": "multiDiff" 配置项来使用 multiple files in diff editor 打开 PR。
  • 在 github.dev 可以使用 multi-file diff editor 来 review 代码。

编辑器 (Editor)

  • 新增 >Paste As... 命令可以将复制内容粘贴为 HTML 格式。

    image

源代码版本控制 (Source Control)

  • Commit 消息输入框:

    • 新增 scm.inputMinLineCount 配置项,可配置输入框的最小行数。
    • scm.inputMaxLines 配置项被重命名为 scm.inputMaxLineCount
    • 可以使用语言特殊编辑器配置,配置Commit 消息输入框的行为,如:

      "[scminput]": {
          "editor.rulers": [
              50,
              72
          ],
          "editor.wordWrap": "off"
      }
  • 源代码管理视图,右键上下文菜单可以关闭其他存储库。

  • Incoming/Outgoing changes improvements 略,详见:原文

  • Ability to merge tags 略,详见:原文

  • 可通过 >Git: View Stash... 查看 stash 的 diff。

  • Commit signing using SSH keys,略,详见:原文

笔记本 (Notebooks)

  • 支持拖拽到独立窗口。
  • Built-in variable view。
  • 粘性滚动。

详见:原文

终端 (Terminal)

  • 背景色显示在选中色的后面。
  • 新增配置项 "terminal.integrated.mouseWheelZoom",支持通过滚轮缩放终端。
  • 改进粘贴多行的警告,略,详见:原文
  • 文件定位输出支持 file:// 协议,支持 #<line> 格式定位到具体行。
  • 新增终端语音指令,略,详见:原文

任务 (Tasks)

  • 新的 ${/} 变量可以用来代替之前的 ${pathSeparator} (用来拼比 unix 和 windows 的文件路径分隔符的差异)。

调试 (Debug)

  • 新增 触发断点 (Triggered breakpoints) 类型,该类型断点可以配置在某个断点命中后,这个断点才会命中。

  • 新增 debug.closeReadonlyTabsOnEnd 配置项,在调试会话结束时关闭只读文件。

测试 (Testing)

  • 按住 alt (option) 单击编辑器左侧运行测试的按钮,将以 debug 模式运行测试。
  • Finalized TestRunProfile.isDefault/onDidChangeDefault APIs for extension authors,略,详见:原文

语言 (Languages)

  • Markdown

    • markdown.editor.pasteUrlAsFormattedLink.enabled 新增默认值 smartWithSelection,仅在选中文本时并粘贴链接时触发自动生成 markdown 连接。
    • 新增 markdown.editor.filePaste.audioSnippet 配置项,可配置智能粘贴音频或视频文件的 URL 时生成代码的片段。
  • 使用 Better-Less 作为默认的 Less 语法高亮。

  • 使用 Go Syntax 作为默认的 Go 语法高亮。

远程开发 (Remote Development)

需要特别注意的是,由于 VSCode 的 Linux minimum requirements 更新,在旧版本的 (不满足 glibc 2.28 or later, and glibcxx 3.4.25 or later, such as Debian 10, RHEL 8, or Ubuntu 20.04.) 的 Linux 将无法进行远程开发。

临时非降级的解决办法参见: https://github.com/rectcircle/patch-vscode-1-86-for-old-linux

其他,略,详见:原文

贡献到扩展 (Contributions to extensions)

  • GitHub Copilot,详见:原文
  • Python:
    • 扩展的 Debug 能力被抽离到 Python Debugger 扩展,该扩展将随 Python 扩展的安装自动安装,在 launch.json 中使用 "type": "debugpy" 使用新的调试器。
    • 其他略,详见:原文
  • Jupyter,略,详见:原文
  • GitHub Pull Requests and Issues,略,详见:原文

预览特性 (Preview Features)

  • TypeScript 5.4 beta support,详见:原文
  • 快速搜索提升, cmd+p% 关键字,可点击右侧图标,在搜索视图查看。

API 提案 (Proposed APIs)

略,详见:原文

已完成的 API (Finalized APIs)

略,详见:原文

工程 (Engineering)

  • Housekeeping,年末清理一波 Issue,详见:原文
  • Markdown 语言服务 0.4 发布。
  • 新的 localize2 函数使制作 ILocalizedStrings 变得更容易,详见:原文
  • 更新到 Electron 27 。
  • Linux 最低要求更新:从此版本开始,VSCode 桌面仅与基于 glibc 2.28 或更高版本以及 glibcxx 3.4.25 或更高版本的 Linux 发行版兼容,例如 Debian 10、RHEL 8 或 Ubuntu 20.04 以上版本。