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

本次更新推荐功能

使用者

  • Untitled 编辑器 hint,并添加可点击快速操作,可以选择该编辑器的语言
  • 终端新快捷键
    • 切换到上一个终端 - Ctrl+PageUp (macOS Cmd+Shift+])
    • 切换到下一个终端 - Ctrl+PageDown (macOS Cmd+shift+[)
    • 聚焦到终端标签栏 - Ctrl+Shift+\ (macOS Cmd+Shift+\)
  • UI
    • "window.dialogStyle": "custom" 使用 非 操作系统Native 弹窗优化
    • workbench.experimental.useCustomHover 开启和 VSCode UI 更加一致的 Hover 样式,替代操作系统原生的 Hover
    • "terminal.integrated.tabs.enabled": true 启用终端 tabs 栏
  • 调试强制打开调试扩展的内联变量 debug.inlineValues 配置(不一定显示正确)

扩展开发者

  • "workbench.welcomePage.experimental.extensionContributions": true, 可以开启展示扩展的演练场,开发者可以参考 Luna Paint,实现自己扩展的教学
  • 远程仓库(一个内置扩展)(RemoteHub),正在内测,引入虚拟工作空间相关概念和 API,参见 手册
  • 扩展可以添加命令到 remote indicator menu(VSCode 左下角按钮),更多参考:原文
  • 工作空间受信相关 API,参见:原文,讨论参见:Issue

工作区 (Workbench)

  • 提升 Hover 反馈,更加明确
  • Untitled 编辑器 hint,并添加可点击快速操作,可以选择该编辑器的语言
  • 默认自定义编辑器,如果您有两个编辑器都声明它们应该是资源的默认编辑器(例如,图像查看器和图像编辑器),您将收到解决冲突的提示。
  • 更新自定义对话框样式,通过 "window.dialogStyle": "custom" 配置项体验
  • 支持配置仅自动更新启用的扩展,"extensions.autoUpdate": "onlyEnabledExtensions"

终端 (Terminal)

  • Profile 改善,相关介绍:v1_55
    • 支持环境变量和 icon 配置
    • terminal.integrated.shellterminal.integrated.shellArgs 在未来将被启用
  • 新的快捷键
    • 切换到上一个终端 - Ctrl+PageUp (macOS Cmd+Shift+])
    • 切换到下一个终端 - Ctrl+PageDown (macOS Cmd+shift+[)
    • 聚焦到终端标签栏 - Ctrl+Shift+\ (macOS Cmd+Shift+\)
  • Linux selection paste command:workbench.action.terminal.pasteSelection
  • 终端工作区 shell 权限变更的配置:"terminal.integrated.allowWorkspaceConfiguration": true

任务 (Tasks)

调试 (Debugging)

  • 断点列表视图提升
    • 添加字段读写访问类型断点的展示
    • 更好的异常断点状态/错误报告
  • UI 提升:略
  • 一些语言(Java)已经开启支持内联值展示(编辑器右侧支持显示此行的变量值),如果想强制打开使用 debug.inlineValues 配置(不一定显示正确)
  • debug.openDebug 默认值为 openOnDebugBreak

NoteBook

  • Cell 内联行号
  • notebook.cellToolbarLocation 位置
  • Markdown cells 支持 Math 公式,通过 $...$$$...$$ 语法

语言 (Languages)

  • markdown.preview.typographer (默认禁用)配置 支持 特殊符号替换,比如 (c) 展示为 ©。参见 github
  • .xsession.xprofile 被识别为 shellscript 类型

预览特性 (Preview features)

  • "terminal.integrated.tabs.enabled": true 终端 tab 栏被启用
    • UI
      • 初始化时 Panel 标题栏右侧有四个可操作性区域分别为:图标、name、新建、下拉菜单
      • 当大于等于两个 Shell 时,主窗口右侧将出现标签栏,hover 将出现删除和 split 图标
    • 我们努力使新标签的行为方式与资源管理器的工作方式保持一致。下面是一些其他的行为:
      • 双击空白处将创建一个新终端。
      • 双击 sash (就是分割线),将窗口宽度变化为能显示所有文字的最小宽度(资源管理器也可以,👍)
      • terminal.integrated.tabs.location 配置可以移动到左侧
      • terminal.integrated.tabs 设置区块下提供了更多的选项
  • 终端状态,支持如下状态
    • Relaunch needed 需要重启:扩展想改变终端的环境变量
    • Disconnected 断开连接:当终端与其进程失去连接时,使用插头图标状态。
    • Bell 响铃:通过 terminal.integrated.enableBell 配置
    • 未来将支持更多的 task 状态
  • 欢迎页演练场
    • "workbench.welcomePage.experimental.extensionContributions": true, 配置后,可以展示扩展的演练场,一个例子 Luna Paint
  • workbench.experimental.useCustomHover 开启和 VSCode UI 更加一致的 Hover 样式,替代操作系统原生的 Hover
  • 远程仓库(一个内置扩展)(RemoteHub):直接从 VS Code 中即时浏览、搜索、编辑和提交到任何 GitHub 存储库,而无需克隆或拥有本地存储库。它目前仅在 VS Code 的 Insiders 版本中可用。
    • Feature
      • 快速打开任意一个 Github 仓库而不需要 Clone 到 本地
      • 轻松编辑和贡献任何 GitHub 存储库 - 直接将更改提交到 GitHub,或打开拉取请求。
      • Continue on...,快速 Clone 到本地,或者容器中
      • 提供类似本地目录的能力
        • 资源管理器 Explorer
        • 搜索
        • Source Control
        • Timeline 时间线
        • Quick Open
        • Remote Indicator
      • 同时在不同的分支上工作 - 每个远程分支都被视为一个单独的工作树(用 Git 的说法),这意味着您所做的任何更改都与该分支隔离。你不需要为了切换到一个新的分支来存储你的更改,以便签出一个 PR 或开始一个新的工作项。当您返回上一个分支时,您的更改仍然存在。
      • 安装 GitHub 拉取请求和问题扩展,并快速查看、探索和签出拉取请求,查看并开始处理问题。
    • 限制
      • 有限的语言智能 - 许多语言服务器还不了解这种虚拟化环境。 TypeScript 支持远程存储库的单文件智能。
      • 有限的扩展支持 - 与语言服务器一样,许多扩展不适用于远程存储库。扩展可以选择退出,并且不会为虚拟工作区激活。有关更多详细信息,请参阅下面的扩展创作部分。
      • 搜索 - 全文搜索需要预先构建的索引来进行精确的文本匹配,否则它将回退到 GitHub 的模糊默认分支仅本机搜索。
      • 终端 - 不支持。任何打开的终端都将位于您的本地文件系统上。
      • Debugging - 不支持
      • Tasks - 不支持
  • TypeScript 略
  • Workspace Trust 工作区是否信任
    • security.workspace.trust.enabled
    • security.workspace.trust.startupPrompt

贡献扩展 (Contributions to extensions)

扩展制作 (Extension authoring)

  • 定义您的扩展是否支持虚拟工作区 package.json 添加 capabilities.virtualWorkspaces 声明,关于虚拟工作区,参见:手册,支持虚拟工作区意味着:不能使用本地文件系统 API,需要使用 VSCode 提供的 fs API
  • 扩展可以添加命令到 remote indicator menu(VSCode 左下角按钮),更多参考:原文
  • 使用 iframe 替代 webview,以提升浏览器端的一致性,通过 Developer: Open Webview Developer Tools 命令检查,参见:原文
  • 工作空间受信相关 API,参见:原文,讨论参见:Issue

文档

合作伙伴