微软发布 VS Code 1.51,改进了固定选项卡等

阅读时间图标 11分钟读


读者帮助支持 MSpoweruser。如果您通过我们的链接购买,我们可能会获得佣金。 工具提示图标

阅读我们的披露页面,了解如何帮助 MSPoweruser 维持编辑团队 查看更多

微软 VS 代码

微软 VS 代码

微软今天宣布发布 Visual Studio Code v1.51(2020 年 XNUMX 月更新),其中包含多项改进和错误修复。 这个新更新现在带有可调整大小的 IntelliSense 建议框、持久远程终端会话、改进的固定选项卡等。 在下面找到 Microsoft 提供的完整更改日志。

工作台#

更突出的固定标签#

固定标签现在将始终显示其固定图标,即使在不活动时也是如此,以使它们更容易识别。 如果编辑器既已固定又包含未保存的更改,则图标会反映这两种状态。

显示 pin 图标的非活动固定选项卡

扩展树使用自定义悬停#

我们现在使用自定义悬停,而不是在扩展树视图中使用本机工具提示,该悬停是一致的跨平台并且更适合整体 UX。

自定义树悬停

在不同步的情况下安装扩展#

您现在可以在启用设置同步的情况下安装扩展而不同步它。

安装扩展而不同步

主题: GitHub 灯

从资源管理器安装扩展#

VS Code 现在支持从资源管理器安装扩展 VSIX 文件,方法是右键单击 VSIX 文件并选择 安装扩展 VSIX 上下文菜单项。

输入模糊命令#

一个新的内部 workbench.action.blur 现在可以使用命令,它可以从任何可聚焦的输入中移除焦点。 您可以在 键盘快捷键首选项.

综合终端#

本地回声#

在终端中进行修改传统上需要将信息发送到终端进程、处理并返回到 VS Code 才能受到影响。 当处理与 SSH服务器 or 代码空间.

此版本为终端添加了“本地回显”模式,该模式尝试预测本地所做的修改和光标移动,并在 UI 中显示它们,而无需往返服务器。 默认情况下,预测字符显示为“变暗”:

Gif 显示具有 250 毫秒延迟的打字,其中立即输入的字符变暗

您可以使用两种设置来配置它:

  • terminal.integrated.localEchoLatencyThreshold 配置检测到的延迟阈值,以毫秒为单位,本地回声将在该阈值时激活。 这可以设置为 0 一直打开该功能,或 -1 禁用它。 默认为 30.
  • terminal.integrated.localEchoStyle 配置本地字符的样式或颜色,默认为 dim.

智能感知#

可调整大小的建议#

在这个里程碑中,我们对建议 UI 进行了多项改进。 首先,它现在可以调整大小。 拖动边或角来调整控件的大小。

可调整大小的建议控件

主题: GitHub 灯, 字体:FiraCode

建议列表的大小将跨会话保存和恢复。 详细信息窗格的大小仅在每个会话中保存,因为该大小往往更具可变性。 此外,该 editor.suggest.maxVisibleSuggestions 设置已过时。

建议的状态栏#

建议控件现在也可以在窗口底部显示自己的状态栏。 使用 editor.suggest.showStatusBar 环境。 它使切换细节更简单,并显示完成是否支持插入、替换或两者兼而有之。

建议状态栏

主题: GitHub 灯, 字体:FiraCode

在上面的示例中,选择“插入”会导致 Math.floorceil 并选择“替换”导致 Math.floor.

新的 editor.suggest.insertMode 设置允许您配置您喜欢插入还是替换。 当建议同时支持两者时,您的偏好将是默认设置。

移动光标以选择建议#

最后但同样重要的是,您现在可以在显示建议时移动光标。 例如,您可以在单词末尾触发建议,向左移动以查看更多建议,然后使用替换来覆盖该单词。

显示建议时移动光标

主题: GitHub 灯

蚂蚁#

Emmet 中的自定义片段又回来了。 此外,片段现在会在保存片段文件或更新 emmet.extensionsPath 设置。

Emmet 自定义片段再次工作

源代码控制#

Source Control 输入框保存提交消息历史#

这解决了一个 功能要求 导航 SCM 提交历史。 按 Up 和 Down 分别显示前一个和下一个提交。 要直接移动到输入框的第一个和最后一个位置,请按 其他 与相应的箭头键一起使用。

在 SCM 输入框中输入消息,然后暂存并提交更改后,按向上箭头会显示刚刚提交的消息

Git:子菜单中的标记命令#

标签相关的 Git 命令已添加到 ... Git 菜单。

Git标签子菜单

Git:变基命令#

一个新的 Git:变基分支… 添加了命令,可让您使用 UI 重新定位分支。

Git:递归克隆命令#

随着 Git:克隆(递归) 命令,您现在可以递归地克隆 Git 存储库,包括其嵌套的 Git 子模块。

时间轴:表情符号简码渲染#

我们现在渲染表情符号简码,例如 :smile:, 在时间轴视图中。

带有表情符号的时间线视图

语言#

Markdown 智能选择#

使用以下新命令扩展和缩小 Markdown 文档中的选择:

  • 扩大: Shift+Alt+右
  • 收缩: Shift+Alt+左

选择适用于以下内容,并遵循传统的分层模式:

  • 书单
  • 块引号
  • 围栏代码块
  • html代码块

Markdown 文档中的智能选择从块元素扩展到包含它的块元素,到标题下的其余内容,到标题本身

JavaScript 和 TypeScript 的空大括号格式选项#

新的 javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces 和 typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces 格式化配置选项控制是否在空括号之间插入空格。 这些设置的默认值为 true。 例如,对于 JavaScript:

class Foo {
  doFoo() {}
}

设置 "javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false 并格式化代码导致:

class Foo {
  doFoo() {} // Notice that the space has been removed
}

浏览器支持#

下载文件夹(Edge、Chrome)#

利用新的 文件系统访问 API,在浏览器中运行的 Microsoft VS Code 现在可以为文件资源管理器中的文件夹提供下载操作,以将所有文件和文件夹下载到磁盘。

下载资料夹

请注意: 这需要最新版本的 Microsoft Edge 或 Google Chrome。

打开工作区通知#

如果您打开一个文件夹,其中包含 .code-workspace 文件位于顶层,您现在会看到一条通知,要求您打开它。 这在 Microsoft VS Code 桌面版中总是如此,现在也可以在浏览器中使用。

打开工作区通知

防止意外关闭#

新设定 window.confirmBeforeClose 添加以在关闭或离开工作台之前显示确认对话框。

可能的值为:

  • keyboardOnly 仅当您使用键绑定关闭时才会显示确认(例如, Ctrl + W)。 (默认)
  • always:确认对话框将始终显示,即使您从鼠标手势关闭。
  • never: 永远不会显示确认信息。

关闭确认对话框

备注: 此设置可能无法涵盖所有​​情况。 浏览器可能仍会决定关闭选项卡或窗口而无需确认。

对扩展的贡献#

GitHub 拉取请求和问题#

工作仍在继续 GitHub 拉取请求和问题 扩展,它允许您处理、创建和管理拉取请求和问题。

要了解所有新功能和更新,您可以查看完整的 0.22.0 的变更日志 扩展的发布。

远程开发#

工作仍在继续 远程开发扩展,它允许您使用容器、远程机器或 Linux的Windows子系统 (WSL) 作为功能齐全的开发环境。

1.51 中的功能亮点包括:

  • 能够持久/重新连接到终端会话。
  • 改进的端口转发体验。

您可以在 远程开发发行说明.

预览功能#

预览功能尚未准备好发布,但功能足以使用。 我们欢迎您在开发过程中提供早期反馈。

设置同步#

设置同步现在同步扩展的全局状态。 扩展必须提供状态以使用新引入的同步 setKeysForSync API。

记住代理凭据#

我们正在彻底检查登录对话框,该对话框显示网络连接何时需要使用代理进行身份验证。 新设定, window.enableExperimentalProxyLoginDialog: true,将启用我们计划在未来版本中默认设置的新体验。

代理登录

主题: GitHub 灯

该对话框将出现在 Microsoft VS Code 窗口中,并提供一种记住凭据的方法,这样您就不必在每次启动 VS Code 时都提供它们。 凭据将存储在操作系统标准凭据存储中(macOS 上的钥匙串、Windows 上的 Windows 凭据管理器和 Linux 上的 gnome 密钥环)。

我们仍然在每个会话中只显示一次此对话框,但将来可能会重新考虑此决定。 如果您选择记住的凭据无效,您将再次看到该对话框。 再次提供它们允许您更改它们。

请启用此选项,并通过我们的 问题追踪器.

TypeScript 4.1 测试版支持#

Microsoft VS Code 支持 TypeScript 4.1 测试版 和夜间构建。 4.1 更新带来了一些新的 TypeScript 语言特性,例如支持 递归条件类型,以及工具改进。 一个重点领域是 添加初始支持   @see JSDoc 注释中的标签。

要开始使用 TypeScript 4.1 nightly build,只需安装 TypeScript Nightly 扩展. 如果您遇到 TypeScript 4.1 的任何错误,请分享反馈并告诉我们。

扩展创作#

更新的扩展示例#

我们更新了一些我们的 扩展样本 包括与我们的颜色主题标记挂钩的 Microsoft VS Code 默认样式。 这意味着通用元素(文本、按钮、输入)将是可主题化的,并且与产品中的默认样式相匹配。 以下是包含此内容的扩展:

Webview 样式示例

树木中的 Codicon 颜色#

随着项目的最终确定 ThemeIcon 颜色 API, 扩展作者可以在自定义树视图中的 codicons 上使用主题颜色。

带有图标颜色的树视图

同步全局状态#

扩展现在可以通过提供键来同步它们的全局状态,当启用设置同步时,它们的值应该同步,使用新引入的 setKeysForSync API在 globalState 纪念。

/**
 * Set the keys whose values should be synchronized across devices when synchronizing user-data
 * like configuration, extensions, and mementos.
 *
 * Note that this function defines the whole set of keys whose values are synchronized:
 *  - calling it with an empty array stops synchronization for this memento
 *  - calling it with a non-empty array replaces all keys whose values are synchronized
 *
 * For any given set of keys this function needs to be called only once but there is no harm in
 * repeatedly calling it.
 *
 * @param keys The set of keys whose values are synced.
 */
setKeysForSync(keys: string[]): void;

评论线程回复按钮可见性#

评论 扩展现在可以使用新属性控制评论线程中回复按钮的可见性, CommentThread#canReply. 当它设置为 false,用户将不会在评论线程中看到回复按钮或评论框。

提议的扩展 API#

每个里程碑都带有新的提议 API,扩展作者可以试用它们。 一如既往,我们希望得到您的反馈。 这是您尝试提议的 API 所必须做的:

  • 您必须使用 Insiders,因为提议的 API 经常更改。
  • 您必须在此行中 package.json 你的扩展文件: "enableProposedApi": true.
  • 复制最新版本的 vscode.proposed.d.ts 文件到项目的源位置。

您不能发布使用建议 API 的扩展。 下一个版本中可能会有重大更改,我们永远不想破坏现有的扩展。

折叠范围提供者更改事件#

折叠范围提供者可以向编辑器发出信号,需要使用 onDidChangeFoldingRanges 事件。

有关更多详细信息并提供反馈,请使用 问题#108929.

密码 API#

作为继续工作的一部分 身份验证提供程序,我们引入了用于存储和检索敏感信息的 API。 在内部,这充当了 键塔 VS Code 用于存储机密的库。

/**
 * Retrieve a password that was stored with key. Returns undefined if there
 * is no password matching that key.
 * @param key The key the password was stored under.
 */
export function getPassword(key: string): Thenable<string | undefined>;

/**
 * Store a password under a given key.
 * @param key The key to store the password under
 * @param value The password
 */
export function setPassword(key: string, value: string): Thenable<void>;

/**
 * Remove a password from storage.
 * @param key The key the password was stored under.
 */
export function deletePassword(key: string): Thenable<void>;

/**
 * Fires when a password is set or deleted.
 */
export const onDidChangePassword: Event<void>;

工程师#

使 Microsoft VS Code 受信任类型兼容#

我们继续努力使 VS Code 符合“可信类型”。 目标是防止基于 DOM 的跨站点脚本漏洞。 您可以在 web.dev 了解有关受信任类型的更多信息 可信类型站点 并关注我们的进展 问题#103699.

Sumber: 微软

有关主题的更多信息: 微软, Visual Studio代码1.51, VS代码

发表评论

您的电邮地址不会被公开。 必填带 *