Visual Studio Code 2019 August版本发布,新功能尝鲜

最近微软VS团队宣布了其免费开源的编辑器Visual Studio Code的新版本。今天我们就一起来尝鲜其带来的功能变化。

Visual Studio Code 2019 August版本发布,新功能尝鲜

概述

新版本带来了很多变化,其中最主要的亮点功能有:

保留全局搜索和替换的"Preserve Case"选项支持不区分大小写,在多文件搜索/替换中不区分字母大小写。

设置编辑器字符串数组验证,检查min,max,enum值和glob模式。

调整光标周围的线条,使光标在编辑器中居中。

在对比编辑器中复制和还原,可以轻松的复制或恢复已删除的内容。

跳转到行功能支持负号,快速跳转到文件末尾。

HTML和CSS的MDN参考链接,直接从IntelliSense链接到MDN文档。

添加缺失等待快速修复,可以在异步代码中查找忽略的等待。

调试数据断点,当跟踪值更改时,调试器会中断。

VS Code图标存储库,可用于扩展作者的官方产品图标。

Alpine Linux发行版支持,用于远程WSL和容器扩展。

工作台

在搜索和替换中保留大小写

在上一个版本中,编辑器的"查找/替换"控件中添加了"Preserve Case"选项。同样的选项现在可用作全局搜索和替换中的AB图标。

对于连字符分隔的单词,还有一种新的大小写模式。

Visual Studio Code 2019 August版本发布,新功能尝鲜

更新了取消搜索图标

对长时搜索时,更新了取消搜索的图标,以更好地表示操作。

Visual Studio Code 2019 August版本发布,新功能尝鲜

验证字符串数组设置

如果当前值不满足指定的minItems,maxItems,item.enum或item.pattern模式,则设置编辑器会显示字符串数组项的错误。

Visual Studio Code 2019 August版本发布,新功能尝鲜

对外链接的链接保护

新版本中VS Code在打开对外链接之前会发出提示。

可以直接打开链接或信任特定域以绕过此提示。使用"配置可信域"按钮或命令,可以为特定域或所有对外链接启用/禁用链接保护。

Explorer改进

顶级资源创建

新版本改进了在资源管理器中创建顶级文件和文件夹的过程。现在有三种方法可以在文件资源管理器的根目录中创建文件或文件夹:

滚动超出最后一个元素,以便调用空白区域的上下文菜单。

按Escape可清除资源管理器中的焦点和选择,从而使标题区域操作在Explorer根目录上执行。

使用滚动条上的上下文菜单。

打开文件并保留焦点

现在可以从资源管理器中预览打开文件,同时将焦点保持在资源管理器中。新的命令是filesExplorer.openFilePreserveFocus,默认情况下,它可以通过Space键触发。

资源管理器文件命名

有一个新设置项explorer.incrementalNaming来控制重复文件命名,可设置为simple或者smart。

simple:在重复名称的末尾附加单词"copy",后面可能跟一个数字。这是当前VS Code的默认行为。

smart:在重复名称的末尾添加一个数字。如果数字已经是名称的一部分,会递增数字计数。

最大化编辑器切换命令

新命令Toggle Editor Group Sizes(workbench.action.toggleEditorWidths)将在最大化活动编辑器组和最适编辑器组宽度之间切换。

工作台的网格布局

工作台的布局引擎新版中做了重写,以使用与编辑器区域本身相同的网格小部件。Insiders版本中已经默认启用了此功能。其设置项为

workbench.useExperimentalGridLayout,1.38中正式默认启用。

切换编辑器区域/最大化面板

新引擎为将来的工作台布局提供了更大的灵活性。在1.38版本中最明显地表现为隐藏编辑区域的能力。网格布局中有一个新命令"Toggle Editor Area"可以隐藏编辑器区域并允许面板(例如Output或Debug控制台)填充布局。 "Toggle Maximized Panel"命令也具有相同的效果。这意味着最大化的面板现在真正最大化,而没有编辑器之前留下的微小差距。

Visual Studio Code 2019 August版本发布,新功能尝鲜

从面板或侧边栏等任何位置打开文件,编辑器将自动重新出现。

隐藏单个macOS Touch Bar条目

新配置项keyboard.touchbar.ignored可以有选择地从macOS Touch Bar中删除VS Code。 VS Code默认添加以下命令:

workbench.action.navigateBack
workbench.action.navigateForward
workbench.action.debug.start
workbench.action.debug.run
workbench.action.debug.continue
workbench.action.debug.pause
workbench.action.debug.stepOver
workbench.action.debug.stepInto
workbench.action.debug.stepOut
workbench.action.debug.restart
workbench.action.debug.stop

新编辑器组上下文快捷键

对条件语句有两个新的when子句上下文键盘快捷键

activeEditorGroupIndex:从1开始的数字,反映编辑器网格中编辑器组的位置。索引为1的组将是左上角的第一个组。

activeEditorGroupLast:编辑器网格中的最后一个编辑器组将为true。

可访问性改进

针对可访问性问题,新版本改进有:

字导航现在遵循NVDA和VoiceOver所期望。在编辑器中使用单词导航进行导航时,可以正确朗读该单词。

indows放大镜工具现在可以在编辑器中跟随光标。

截屏模式

截屏模式有一些改进(开发人员:Toggle Screencast模式):

屏幕录像键绑定标签的长度现在有限制。

可以通过screencastMode.verticalOffset设置调整键绑定标签垂直位置。

可以将键绑定标签配置为仅通过screencastMode.onlyKeyboardShortcuts设置呈现实际的键盘快捷键。

改进了键盘快捷键渲染样式。

编辑器

光标周围的行(scrollOff)

新版本中可以通过设置editor.cursorSurroundingLines,在将光标移向文件的开头或结尾时自定义要在光标周围显示的可见行数。相当于Vim中的scrollOff。

在Find中进行多行搜索

编辑器Find控件现在支持多行文本搜索和替换。按Ctrl + Enter,可以在输入框中插入新行。

在差异编辑器中复制并恢复

使用内联差异编辑器时,有复制或还原已删除内容的新操作。将鼠标悬停在内联差异编辑器中的已删除内容上,现在可以做以下操作:

复制整个已删除的内容

复制特定行

还原更改

Visual Studio Code 2019 August版本发布,新功能尝鲜

跳转到行,支持负线号

可以在"转到行"选择器中键入负行号,以从文件末尾进行导航。例如,键入-1将显示文件的最后一行。

全局搜索小地图装饰

小地图(代码概述)现在显示文件和全局搜索中搜索的搜索结果。

集成的终端

terminal.integrated.cwd变量回退

在cwd设置中使用变量时,例如:

"terminal.integrated.cwd": "${fileDirname}"

当无法解析变量时,终端现在将错误记录到控制台并回退到工作空间目录,而不会抛出错误。

自动化shell设置

除了为集成终端设置shell之外,现在可以指定用于自动化的shell(例如"任务")。如果使用tmux作为shell,这将特别有用。

"terminal.integrated.shell.osx": "/Users/user/bin/tmux_script"

"terminal.integrated.automationShell.osx": "bash",

编程语言

HTML和CSS的MDN参考

VS Code现在显示一个指向HTML和CSS实体完成和悬停时会给出相关MDN参考的URL:

Visual Studio Code 2019 August版本发布,新功能尝鲜

改善对Less的支持

VS Code现在支持许多新的Less.js功能,包括根函数,地图查找和匿名混合。

非标准标记和过时CSS属性的弃用

CSS采用Deprecation Tag实验API,并显示在自动完成时标记为非标准或过时的CSS属性的弃用标记。

Visual Studio Code 2019 August版本发布,新功能尝鲜

TypeScript 3.6

新版本内置了TypeScript 3.6.2。该新版本主要带来了一些TypeScript语言改进:

包括更严格的生成器和对import.meta的支持,以及JavaScript和TypeScript的一些新工具功能,以及许多重要的错误修复。

添加缺失等待快速修复

新增加的'await'快速修复可帮助等待在异步代码中可能忽略的值:

Visual Studio Code 2019 August版本发布,新功能尝鲜

此快速修复程序适用于启用了类型检查的TypeScript和JavaScript源代码。

JavaScript和TypeScript编辑分号识别

当在JavaScript或Typescript源代码中添加导入或应用重构时,VS Code现在会智能推断是否包含分号,和现有代码中的代码风格一致。

Visual Studio Code 2019 August版本发布,新功能尝鲜

JSDoc注释中IntelliSense不在合并

以前, JavaScript和TypeScript IntelliSense会将多个JSDoc注释组合在一个定义之前。在下面的示例中,请注意User类型的文档如何与getUser函数的文档合并:

Visual Studio Code 2019 August版本发布,新功能尝鲜

使用TypeScript 3.6, IntelliSense现在只使用前面的JSDoc注释来获取文档和输入信息:

Visual Studio Code 2019 August版本发布,新功能尝鲜

版本控制

提交输入上的分支名称

当前的Git分支名称会在提交输入框中予以提示,以避免误提交其他分支:

Visual Studio Code 2019 August版本发布,新功能尝鲜

按字母顺序对分支列表进行排序

有一个新的git.branchSortOrder设置,用于在使用Git:Checkout to ...命令检出分支时更改分支的顺序。

支持拉取消

启用git.supportCancellation设置时,您将有机会取消正在进行的Git Pull请求,这在从慢速遥控器中拉出时非常有用。

调试器

值变化时中断(数据断点)

从"变量"视图中,可以创建在基础变量的值更改时将被命中的数据断点。与其他断点一样,可以在"断点"视图中禁用/启用和删除数据断点。

Visual Studio Code 2019 August版本发布,新功能尝鲜

请注意,数据断点需要底层运行时或调试器的特定支持,只有少数调试扩展(如C++和C#(但不是Node.js)可以选择加入此功能。当前版本,只有支持示例调试器模拟调试"模拟"数据断点。

调用堆栈视图改进

我们对Call Stack视图做了一些改进,最值得注意的是:

当调试会话只有一个线程时,将始终隐藏线程并直接显示调用堆栈。

单击"调用堆栈"视图中的线程和调试会话不再展开/折叠。当明确点击twistie才会进行扩展。这种变化的原因在于,在不进行不必要的扩展的情况下更改焦点会话非常繁琐。在Outline视图中可以看到相同的行为。

以前当有新的调试会话时,Debug视图将获得焦点。现在,只有会话实际中断时,Debug视图才会获得焦点。

当实际存在该会话的线程时,调试会话元素仅显示twistie。

启动调试目标的新shell设置

在集成终端中启动调试目标时,VS Code现在尊重新的"自动化shell"设置(terminal.integrated.automationShell ...)。如果在启动调试目标时使用集成终端的特定默认shell(例如tmux),则该设置非常有用。

"terminal.integrated.shell.osx": "/Users/user/bin/tmux_script"
"terminal.integrated.automationShell.osx": "bash",

扩展更新

帮助webview扩展添加内容安全策略

针对Webview扩展安全问题,在这次迭代中,针对这些扩展打安全策略,以使他们了解该建议。

GitHub拉请求

新版本继续致力于改进GitHub Pull Requests扩展,包括错误修复和合并拉取请求后删除分支和远程等功能。

远程开发(预览)

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

为了帮助您开始使用远程开发扩展,有三个分步教程:

容器:在Docker容器中运行Visual Studio代码。

SSH远程访问:使用Visual Studio Code通过SSH连接到远程和虚拟机。

在WSL中工作:在Windows子系统Linux中运行Visual Studio代码。

关于远程开发扩展可以参考虫虫之前的文章。

新版本中主要更新有:

VS Code Stable预览支持Alpine Linux Containers,Alpine WSL发行版和ARMv7l/AArch32 SSH主机。

VS Code Insiders对ARMv8l/AArch64 SSH主机的实验性支持。

改进远程容器,包括新的容器浏览器!

新添加扩展

VS Code图标存储库

在github发布了开源了VS代码图标的存储库(github/microsoft/vscode-icons),供扩展作者使用。每个图标都有深色/浅色版本。

Visual Studio Code 2019 August版本发布,新功能尝鲜

网络视图有两个新属性:

Webview.asWebviewUri:将本地文件系统的URI转换为可在webviews中使用的URI。

对于桌面VS代码,这会将file:URI转换为vscode-resource:URI。

Webview.cspSource:webview资源的内容安全策略源。

对于桌面VS代码,这将是字符串vscode-resource:。

Visual Studio Code 2019 August版本发布,新功能尝鲜

在没有内容安全策略的情况下创建webview时发出安全警告

在开发使用Webview API的扩展现在会在创建未设置内容安全策略的Web视图时记录警告。

Visual Studio Code 2019 August版本发布,新功能尝鲜

所有webview都应该设置内容安全策略。这有助于限制内容注入的安全风险,通常是深度防御的一个很好的衡量标准。

机器特定的可覆盖设置

现在可以使用范围机器可覆盖来定义可在工作空间和文件夹级别覆盖的计算机特定设置。

"configuration": {
"title": "My Extension Settings",
"properties": {
"myextension.libPath": {
"type": [
"string",
"null"
],
"markdownDescription": "Specify the path to the library.",
"default": null,
"scope": "machine-overridable"
}
}
}}

在自定义树视图中多选

createTreeView树现在可以将canSelectMany选项添加到TreeViewOptions。这将在提供的树视图中启用多选,并使得在树元素上运行的命令在第二个命令参数中将所有选定的树元素作为数组接收。

markdown.api.render

来自VS Code的内置Markdown扩展的新markdown.api.render命令采用Markdown或vscode.TextDocument字符串,并将呈现的Markdown作为HTML返回:

import * as vscode from 'vscode';
export function activate(context: vscode.ExtensionContext) {
vscode.commands.executeCommand('markdown.api.render', '# Hello Markdown').then(result => {
console.log(`rendered markdown: ${result}`);
});
}

结果:

rendered markdown:

Hello Markdown

自定义数据标记为稳定

1月1.31版本中作为实验性功能引入的自定义数据格式现在标记为稳定版本。

html.experimental.customData,不推荐,并由html.customData取代。

•css.experimental.customData,不推荐,并由css.customData取代。

•contributions.html.experimental.customDat已弃用,由contribs.html.customData取代。

•contributions.css.experimental.customData,不推荐,由contributions.css.customData取代。

不推荐使用的workspace.rootPath

很久以前,VS code添加了对多根工作空间的支持,并弃用了workspace.rootPath,API,用workspace.workspaceFolders和workspace.getWorkspaceFolder替代。请使用旧API的扩展及时更新。

展开阅读全文

页面更新:2024-02-25

标签:版本   终端   光标   断点   视图   编辑器   新功能   分支   容器   图标   命令   编辑   代码   链接   文件   内容   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top