软件

聚合全网黑科技,软件干货分享,探索、实践、思考、总结最新技术。

vscode1.51版现已上市!阅读有关从十月份开始的新功能和修复的信息。

2020-11-08 16:51:34 阅读数 62 收藏 0

工作台

更为突出的是锁定的选项卡

现在,即使处于不活动状态,“固定”标签也将始终显示其“固定”图标,以使其易于识别。如果编辑器既固定又包含未保存的更改,则该图标反映两种状态。

显示固定图标的非固定固定选项卡

扩展树使用自定义悬停

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

自定义树悬停

安装扩展而不同步

现在,启用设置同步后,您无需同步即可安装扩展程序。

安装扩展而不同步

主题:GitHub Light

安装从资源管理器的扩展

VS Code现在支持通过右键单击VSIX文件并选择Install Extension VSIX context菜单项,从资源管理器安装扩展VSIX文件。

输入模糊命令

workbench.action.blur现在有一个新的内部命令,该命令可从任何可聚焦输入中移出焦点。您可以在“键盘快捷键首选项”中为此命令分配键盘快捷

集成终端

本地回显

传统上,在终端中进行修改需要将信息发送到终端进程,进行处理并返回到VS Code,以便受到影响。当与SSH服务器Codespace的连接较差或较远时,这可能会很慢。

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

Gif显示以250ms的延迟键入,其中立即输入的字符变暗

您可以使用两种设置进行配置:

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

智能感知

可调整大小的建议

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

可调整大小的建议控制

主题:GitHub Light,字体:FiraCode

建议列表的大小将在各个会话之间保存和恢复。详细信息窗格的大小仅在每个会话中保存,因为该大小倾向于可变得多。同样,该editor.suggest.maxVisibleSuggestions设置已过时。

状态栏上的建议

建议控件现在也可以在窗口底部显示其自己的状态栏。使用editor.suggest.showStatusBar设置启用它。它使切换细节更加简单,并显示完成是否支持插入,替换或同时支持两者。

建议状态栏

主题:GitHub Light,字体:FiraCode

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

新editor.suggest.insertMode设置允许您配置是插入还是替换。如果建议同时支持这两种建议,则默认为您的偏好。

移动光标选择建议

最后但并非最不重要的一点是,您现在可以在显示建议时移动光标。例如,您可以在单词结尾处触发建议,向左移动以查看更多建议,然后使用replace覆盖单词。

显示建议时移动光标

主题:GitHub Light

Emmet

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

Emmet自定义片段再次起作用

源控制

源控制输入框中提交保存消息历史记录

这解决了导航SCM提交历史记录的功能请求。按上和下分别显示上一个和下一个提交。要直接移至输入框的第一个和最后一个位置,请按Alt键和相应的箭头键。

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

Git的方法:在子菜单标签命令

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

Git标签子菜单

Git的方法:再次基于命令

添加了新的Git:Rebase branch ...命令,该命令可让您使用UI对分支进行基础设置。

Git的:递归克隆命令

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

时间表:绘文字短代码渲染

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

时间线与表情符号视图

语言

Markdown Smart Select

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

  • 展开:Shift + Alt +向右
  • 缩小:Shift + Alt +向左

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

  • 标头
  • 清单
  • 块引号
  • 围栏代码块
  • HTML代码块
  • 段落
Markdown文档中的智能选择从一个块元素扩展到包含它的块元素,再到标题下的其余内容,再到标题本身

对于JavaScript和打字稿空括号格式选项

新的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
}

浏览器支持

下载文件夹(边,铬)

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

下载资料夹

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

打开工作区的通知

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

打开工作区通知

防止意外关闭

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

可能的值为:

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

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

贡献扩展

GitHub拉取请求和问题

继续在GitHub Pull Requests and Issues扩展上进行工作,该扩展允许您处理,创建和管理Pull Request和Issues

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

远程开发

远程开发扩展继续进行工作,该扩展使您可以将容器,远程计算机或Windows Linux子系统(WSL)用作功能全面的开发环境。

1.51中的功能亮点包括:

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

您可以在“远程开发”发行说明中了解新的扩展功能和错误修复。

预览功能

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

设置同步

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

记住代理凭据

我们正在对登录对话框进行大修,该对话框在网络连接需要使用代理进行身份验证时显示。一项新的设置window.enableExperimentalProxyLoginDialog: true将启用此新体验,我们计划在以后的版本中将其作为默认设置。

代理登录

主题:GitHub Light

该对话框将出现在“ VS Code”窗口中,并提供一种记住凭证的方式,因此您不必在每次启动VS Code时都提供它们。凭据将存储在OS标准凭据存储中(macOS上的钥匙串,Windows上的Windows凭据管理器和Linux上的gnome密钥环)。

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

请启用此选项,并通过问题跟踪器通知我们是否无法正常运行。

打字稿4.1测试版支持

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

要开始使用TypeScript 4.1每夜构建,只需安装TypeScript Nightly扩展。请分享反馈,如果您遇到TypeScript 4.1的任何错误,请告知我们。

扩展创作

更新扩展样品

我们已经更新了一些扩展示例,以包括与我们的颜色主题标记关联的VS Code默认样式。这意味着公共元素(文本,按钮,输入)将成为主题,并与产品中的默认样式匹配。以下是包含此扩展名的扩展名:

Webview样式示例

Codicon颜色的树木

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

树形图和图标颜色

同步全局状态

扩展现在可以通过提供密钥来同步其全局状态,这些密钥应使用memento中新引入的setKeysForSyncAPI在启用“设置同步”时同步其值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用于存储机密的keytar库的包装。

/**
 * 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>;

工程编号

制作VS代码可信类型兼容

我们一直在努力使VS代码“受信任的类型”兼容。目的是防止基于DOM的跨站点脚本漏洞。您可以在web.dev Trusted Types网站上了解有关受信任类型的更多信息,并关注我们在问题#103699中的进展。

文档编号

入门

我们正在关注使编辑器入门更加容易的方法。我们在我们的网站上创建了一个新的“学习编码”登录页面,其中包含编码包和面向编码新手的新内容。我们还在网站code.visualstudio.com/learn上创建了新的学生友好型视频和资源。

学习编码

合作伙伴扩展

适用于Python的编码包(Windows)

用于PythonCoding Pack可安装Python 3.8,特定的Python库,VS Code以及诸如Python和LiveShare之类的基本扩展,从而使新编码人员可以轻松上手。当前可用于Windows。

新命令

命令命令ID
未分配左焦点编辑器组(不环绕)workbench.action.focusLeftGroupWithoutWrap
未分配聚焦右编辑器组(不要环绕)workbench.action.focusRightGroupWithoutWrap
未分配聚焦于编辑器组(不要环绕)workbench.action.focusAboveGroupWithoutWrap
未分配将焦点放在编辑器组下面(不要环绕)workbench.action.focusBelowGroupWithoutWrap
未分配焦点活动栏workbench.action.focusActivityBar

值得注意的修复

  • 43819:Windows:删除包含正在使用的文件的文件夹时,则不会显示错误消息
  • 71315:删除文件后应保持行焦点
  • 96522:用户输入变量不适用于多根工作空间中的启动配置
  • 100255:移动文件应直接使用之前的内容加载模型
  • 108578:在v1.50启动时急切地激活了带有onDebugDynamicConfigurations的扩展
  • 109088:发送vscode.workspace.onWillCreateFiles/onDidCreateFiles文件夹事件
  • 109226:展开/折叠时,调试悬停移动