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

本次更新看点速览

  • 资源浏览器自动跳转,支持通过 explorer.autoRevealExclude 配置项,细粒度的配置哪些文件不自动跳转,这对于 node_modules 之类的文件特别有用,之前一不小心跳转过去,大量的 node_modules 会被展开导致的体验问题。
  • 新增 editor.indentSize 配置项,支持配置缩进的数目,这在使用了 tab 且使用空格进行缩进且 tab 的展示长度和缩进空格不一致的场景。
  • Remote Tunnels 已作为一个预览特性添加 VSCode 稳定版中。

    • 具体操作为:在个人电脑中,下载安装 VSCode 桌面版。点击左下角账户图标,点击打开远程隧道访问,按照提示操作即可。
    • 命令行方式:
      • 运行 code tunnel --accept-server-license-terms,或者通过。
      • 打开 https://github.com/login/device,输入命令行输出的 8 位设备码,进行授权。
      • 授权后,在浏览器中打开 https://vscode.dev/tunnel/ecstatic-bunting/打开的目录(终端中会输出)。
      • 后面即可通过任意设备通过浏览器,访问这台个人电脑的 VSCode Server(类似远程多面)。
      • 除了通过 VSCode 桌面版的 code 命令外,还支持通过独立 VS Code CLI (打开链接选择CLI)、 code-server CLI
    • 除了通过浏览器的 vscode.dev 访问外,还可以通过 Remote - Tunnels 扩展,使用 VSCode 桌面客户端访问。
    • 更多参见: blog | doc
  • 扩展制作

    • Log output channel,支持日志级别,更多参见:原文
    • 扩展 README 支持 <video>,更多参见:原文

辅助功能 (Accessibility)

  • 音频提示
    • Notebook 运行完成后,支持成功或失败音频提示。
    • diff review 模式下的音频提示,当 Go to Next Difference 被触发时,将播放特定音频,以指示光标是在新增行还是删除行中。
    • 通过 Help: List Audio Cues 命令可以查看所有音频提示。
  • 设置编辑器键盘可导航型提升。

    image

工作台 (Workbench)

  • 资源浏览器自动跳转,支持通过 explorer.autoRevealExclude 配置项,细粒度的配置哪些文件不自动跳转,这对于 node_modules 之类的文件特别有用,之前一不小心跳转过去,大量的 node_modules 会被展开导致的体验问题。默认配置为:

    {
        "explorer.autoRevealExclude": {
            "**/node_modules": true,
            "**/bower_components": true
        }
    }
  • 支持通过右键活动栏图标,选择上下文菜单的 Hide Badge,隐藏其的数字徽章。

    image

  • 修复合并编辑器的一些 bug,重点参见:原文

  • 添加 Developer: Install Extension from Location... 命令,支持选择磁盘中的 .vsix 文件进行安装。

编辑器 (Editor)

  • 自动换行配置 editor.wordBreak 可以配置 CJK 末尾不自动换行。
  • 对某些较新的支持调轴的(可变字体博客OpenType 字体,添加配置。新增 editor.fontVariationseditor.fontVariations 配置。具体参见:原文
  • 新增 editor.indentSize 配置项,支持配置缩进的数目,这在使用了 tab 且使用空格进行缩进且 tab 的展示长度和缩进空格不一致的场景,一个例子如下:

    "editor.detectIndentation": false,
    "editor.insertSpaces": true,
    "editor.tabSize": 8,
    "editor.indentSize": 2
  • 新增 Accept Next Word Of Inline Suggestion 配置项,参见:原文

源代码控制 (Source Control)

  • 自 git 2.35.2 起,在非当前用户为 owner 的目录下将禁止操作。当 VSCode 打开这类非安全的 git 仓库时,会在源代码管理视图显示 Welcome 视图,并展示错误通知。在 UI 和通知中,可以通过 Manage Unsafe Repositories 来管理这些仓库,这些将存储到 git 中的 safe.directory 配置中。
  • git UI 乐观更新,某些 git 命令操作,VSCode 的 UI 将立即成功,命令将在后台执行,这在某些大型仓库可能比较有用。可以通过 git.optimisticUpdate 关闭该特性。
  • Action 按钮交互提升。按钮的标签展示底层指定命令,并添加进度动画。

终端 (Terminal)

  • 终端快速修复提升,UI 和编辑器保持一致。

    image

  • 终端下拉列表,添加 Run Task 和 Configure Tasks 菜单项。

远程开发 (Remote Development)

  • Remote Tunnels 已作为一个预览特性添加 VSCode 稳定版中。

    • 具体操作为:在个人电脑中,下载安装 VSCode 桌面版。点击左下角账户图标,点击打开远程隧道访问,按照提示操作即可。
    • 命令行方式:
      • 运行 code tunnel --accept-server-license-terms,或者通过。
      • 打开 https://github.com/login/device,输入命令行输出的 8 位设备码,进行授权。
      • 授权后,在浏览器中打开 https://vscode.dev/tunnel/ecstatic-bunting/打开的目录(终端中会输出)。
      • 后面即可通过任意设备通过浏览器,访问这台个人电脑的 VSCode Server(类似远程多面)。
      • 除了通过 VSCode 桌面版的 code 命令外,还支持通过独立 VS Code CLI (打开链接选择CLI)、 code-server CLI
    • 除了通过浏览器的 vscode.dev 访问外,还可以通过 Remote - Tunnels 扩展,使用 VSCode 桌面客户端访问。
    • 更多参见: blog | doc

调试 (Debugging)

  • JavaScript 调试
    • 支持 console.profile。
    • 支持 嵌套 sourcemaps。
    • 调试配置 serverReadyAction 添加 killOnServerStop,参见:原文
  • 在 Call Stack 视图,有多个不同类型的调试会话。当焦点位于调试会话上时,breakpoints 视图将正确展示 Exception breakpoints 选中情况。

    image

评论 (Comments)

  • 通过 comments.visible 可以配置评论的默认可见性。这个配置不影响 Comments: Toggle Editor Commenting 命令。
  • 命令视图添加数字 badge,展示未解决的评论数目。

    image

任务 (Tasks)

  • Problem matcher ‘search’ file location method,参见:原文

语言 (Languages)

  • 带来 TypeScript 4.9
  • JavaScript 和 TypeScript支持通过 return 关键字,按 F12,跳转到函数定义。

笔记本 (Notebooks)

  • Kernel picker experiment: most recently used kernels,参见:原文

VS Code for the Web

  • 源代码控制,参见:原文
  • Continue Working On 提升,参见:原文

贡献到扩展 (Contributions to extensions)

  • Jupyter,参见:原文
  • Remote Development extensions。
    • Dev Container 支持 GPU。
    • Dev Container Cygwin / Git Bash 套接字转发
    • 通过 Remote - Tunnels 扩展,可以无需 SSH 即可连接到远程主机。
    • 更多参见:原文
  • GitHub Pull Requests and Issues,更多参见:原文

预览特性

  • Profiles,可通过 workbench.experimental.settingsProfiles.enabled 开启,更多参见:原文
  • 扩展签名和验证,参见:原文
  • Python execution in the Web,参见:原文

扩展制作 (Extension authoring)

  • 声明的扩展贡献的隐式激活事件,更多参见:原文
  • Log output channel,支持日志级别,更多参见:原文
  • Consistent origin for all webviews,参见:原文
  • 扩展 README 支持 <video>,更多参见:原文
  • Comment thread additional actions,参见:原文
  • vsce 被重命名为 @vscode/vsce,更多参见:原文

调试适配器协议 (Debug Adapter Protocol)

参见:原文

工程 (Engineering)

  • 方法和属性名重写,包大小减少 13%,代码加载时间减少 5%。
  • GitHub 和 Microsoft 身份验证扩展包大小改进。
  • Electron 沙盒进展,参见:原文
  • Windows 上默认重新启用窗口控件覆盖,参见:原文
  • 内置扩展现在使用新的 l10n API 而不是 vscode-nls,更多参见:原文