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

本次更新看点

使用者

  • 资源管理器目录项文件嵌套,建议通过启用 explorer.fileNesting.enabled 配置项开启,并安装 File Nesting Config 扩展自动更新嵌套模式。
  • 设置编辑器,支持过滤按钮
  • 建议通过将 window.confirmBeforeClose 配置项设置为 keyboardOnly,防止误触 cmd + q 导致 VSCode 退出。
  • Shift+单击,以禁用而非删除断点。

    image

  • 内联提示 editor.inlayHints.enabled 配置添加新的可选项 onUnlessPressedoffUnlessPressed,可以通过 Ctrl+Alt 来按需开关内联提示。

  • Markdown 添加大量引用相关的支持。

    • 拖拽到编辑器以创建链接,可以通过 "markdown.editor.drop.enabled": false 关闭该特性。

      image

    • 支持查找对 Header 的所有引用。

      image

    • 支持查找参考链接的引用。

      image

    • 查找对当前 markdown 文档的所有文件的引用(>Markdown: Find all references to files)。

      image

    • 查找所有对 URL 的引用(>Markdown: Find all references to URLs

      image

    • 重命名标题 (>Markdown: Rename headers)

      image

    • 重命名参考链接

      image

    • 重命名 Markdown 文件名 (F2)

      image

  • JSON 添加 json.validate.enable 配置项(默认为 true)可以用来关闭 json schema 的验证。

  • Java 支持 内联提示 和 调试 lazy 变量。

  • 添加 Rust in VS Code 文档

扩展开发者

  • VSCode URI 支持在新窗口中处理 windowId=_blank,以 git clone 为例: vscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.git&windowId=_blank
  • 添加 UX 指南 最佳实践文档。

工作台 (Workbench)

  • 资源管理器目录项文件嵌套,移除实验性,正式支持。

    • 通过如下配置项可以控制
      • explorer.fileNesting.enabled 控制是否启用文件嵌套。它可以全局设置,也可以针对特定工作区设置。
      • explorer.fileNesting.expand 控制默认情况下是否展开嵌套文件。
      • explorer.fileNesting.patterns 控制文件的嵌套方式。默认配置为 TypeScript 和 JavaScript 项目提供嵌套智能。
      • 之前实验性配置 explorer.experimental.fileNesting.operateAsGroup 已经被移除,目前针对一个组的操作就是会应用到整个组。
    • 一些例子:

      • 默认配置:

        image

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

        image

      • 嵌套与不同文件同名但添加了段的文件("*": "${basename}.*.${extname}"):

        image

    • 推荐安装 File Nesting Config 扩展自动,更新嵌套模式。

  • 设置编辑器,搜索

    • 添加过滤器按钮。

      image

    • 支持按照语言过滤,并将配置项应用到指定语言中,如 @lang:markdown

      "[markdown]": {
      "editor.wordBasedSuggestions": false
      }
  • 添加 files.refactoring.autoSave 配置项(默认值为 true),配置思否在重构后自动保存。

  • 添加 workbench.editor.limit.excludeDirty 配置项(默认值为 false),配置编辑器打开限制是否排除脏编辑器(未保存的编辑器)。

  • 添加 git.timeline.showUncommitted (默认值为 false,因为本地文件时间线已经有了该特性了)配置项,是否展示未提交的文件的时间线。

  • 编辑器打开失败时,在编辑器主页面,显示错误信息和快捷操作

    image

  • 状态栏语言状态

    • 添加显示格式化程序冲突提示 - 当安装了多个语言格式化程序但没有一个配置为默认格式化程序时会发生这种情况。此外,语言状态在包含严重状态时更加突出。

      image

    • 添加 workbench.editor.languageDetectionHints 配置项,配置是否在 无标题编辑器和 notebook 中,如果语言配置错误时,是否显示提示。

      image

  • 显示无效或不兼容的扩展

    image

  • 退出前确认,添加 window.confirmBeforeClose (默认值为 never) 配置项,配置是否在关闭窗口前弹出确认框,可以配置为 keyboardOnly 只在键盘退出时提示。(注意:该设置并不是全新的,并且已经在 VS Code for Web 中提供了一段时间)

    image

  • 评论功能

    • comments.openView 默认值改为 firstFile
    • 多行评论 UI 支持。

      image

  • VSCode URI 支持在新窗口中处理 windowId=_blank,以 git clone 为例: vscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.git&windowId=_blank

编辑器 (Editor)

  • 括号对着色,默认启用,即 editor.bracketPairColorization.enabled 默认值改为 true。
  • TextMate 语法可以将标记标记为不平衡(以支持 shell 语法中的 case in 语法中的 ) 错误,参见官方:文档)。

    • 之前

      image

    • 现在

      image

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

    • 之前

      image

    • 现在

      image

  • 括号装饰线提升(更多参见:原文

    image

  • 内联提示 editor.inlayHints.enabled 配置添加新的可选项:

    • on - 启用内联提示。
    • off - 关闭内联提示。
    • onUnlessPressed - 使用 Ctrl+Alt 显示和隐藏内联提示。
    • offUnlessPressed - 使用 Ctrl+Alt 隐藏和显示镶嵌提示。
  • 内联建议提升(更多参见:原文

    image

  • 将文本拖放到编辑器中

    image

终端 (Terminal)

  • 查找结果计数

    image

源代码版本控制 (Source Control)

  • 源代码控制存储库视图排序 scm.repositories.sortOrder,默认按照发现时间。

    image

  • scm.diffDecorationsGutterPattern 配置可以更改 diff 装饰器样式。

    image

  • 性能改进,将 git.untrackedChanges 设置设置为 hidden 的用户在使用大型存储库时将体验到更好的性能。这是通过在调用 git status 时传递 -uno 参数来实现的。

  • 扩展的远程源提供程序 API,参见:原文

  • 使用 SSH 从 GitHub 克隆 github.gitProtocol,默认为 https,可以更改为 ssh

调试 (Debugging)

  • 自动展开惰性变量配置项 debug.autoExpandLazyVariables,默认为 false。
  • 惰性变量新的 eye 按钮。

    image

  • Shift+单击,以禁用而非删除断点。

    image

语言 (Languages)

  • Markdown

    • 拖拽到编辑器以创建链接,可以通过 "markdown.editor.drop.enabled": false 关闭该特性。

      image

    • 支持查找对 Header 的所有引用。

      image

    • 支持查找参考链接的引用。

      image

    • 查找对当前 markdown 文档的所有文件的引用(>Markdown: Find all references to files)。

      image

    • 查找所有对 URL 的引用(>Markdown: Find all references to URLs

      image

    • 重命名标题 (>Markdown: Rename headers)

      image

    • 重命名参考链接

      image

    • 重命名 Markdown 文件名 (F2)

      image

  • JSON

    • 添加 json.validate.enable 配置项(默认为 true)可以用来关闭 json schema 的验证。

VS Code for the Web

  • 打开远程存储库选择器(Open Remote Repository)时,将使用 window.openFoldersInNewWindow 配置项来决定是否在新窗口中打开。

贡献到扩展 (Contributions to extensions)

  • Java

    • 添加内联提示支持 image
      • 通过 java.inlayHints.parameterNames.enabled 来配置
        • literals - 仅为实参为字面量参数启用函数参数内联提示(默认)。
        • all - 为所有函数调用参数启用函数参数内联提示。
        • none - 禁用函数参数内联提示。
    • 调试支持 lazy 变量

      image

  • Jupyter

    • 新增 Jupyter PowerToys 扩展。
    • 支持 Web extension(可以在 vscode.dev / github.dev 中使用),只支持非 https 的 Jupyter servers(jupyter --no-browser --NotebookApp.allow_origin_pat=https://.*\.vscode-cdn\.net)。
    • 更多参见:原文
  • Python

  • Remote Development,参见:原文

  • GitHub Pull Requests and Issues,参见:原文

预览特性 (Preview Features)

  • 设置 Profile,是 settings、扩展和自定义 UI 的集合,可以用来共享配置和设备迁移。参见:原文
  • TypeScript 4.7 支持,参见:原文

扩展制作 (Extension authoring)

  • Tab API,参见:原文
  • Notebook 更改和保存事件,参见:原文
  • 支持非递归工作区文件观察器,参见:原文
  • 添加 UX 指南 最佳实践文档。

调试器扩展制作 (Debugger extension authoring)

略,参见:原文

语言服务器协议 (Language Server Protocol)

略,参见:原文

提案的 API (Proposed APIs)

略,参见:原文

工程 (Engineering)

略,参见:原文

文档 (Documentation)