VS Code 1.45发布,更好的Debug,更好的编码体验,更好的Github集成,JS调试器,终端改进,滚动切换选项卡

VS Code 1.45

此次发布的VS Code 版本为1.45,主要更新如下:

  • 可访问性改进:聚焦命令导航工作台,状态栏可访问性。
  • 通过鼠标滚轮切换编辑器选项卡
  • 更快的语法高亮显示 :编程语言的着色速度提高了3倍;
  • 用户可自定义语义颜色
  • 支持GitHub认证
  • GitHub IssueUser 提供内联管理;
  • 远程开发,容器配置建议,支持WSL 2

以下便是详细内容:

工作台

使用鼠标滚轮切换选项卡

在设置中新增了一项设置:workbench.editor.rollToSwitchTabs,开启后,便可以通过鼠标滚轮切换编辑器中打开的选项卡;

当你把鼠标焦点移动到编辑器标签页所在的区域,并开始滚动鼠标滚轮时,打开的标签页便会切换到编辑器中打开的其他的选项卡,详情如下:

使用鼠标滚轮切换选项卡

在鼠标滚轮滚动的同时,按下shift键,选项卡就会向相反的方向切换。

自定义窗口标题分隔符

默认情况下,使用"-"作为窗口标题中使用的分隔符,现在,设置中的新设置项:window.titleSeparator,可用于修改窗口标题中使用的分隔符;

自定义窗口标题分隔符

在图中,红线标注的便是窗口标题中使用的分隔符。

修改了侧栏标题的默认主题

为默认的深色和浅色主题更新了侧栏部分标题的样式,在使用透明背景时,并为每个标题显示一个边框:

修改了侧栏标题的默认主题

在上图中,除了OPEN EDITORS栏目没有边框外,其余的几个栏目都有一个明显的边框。

编辑器

语法高亮显示

此版本便编写了一个专门的 Web Assembly绑定,为TextMate解释器的使用做了大量的优化,采用了几个月前刚刚添加到oniguruma的新API;在高亮显示常规编程文件方面的性能提高了3倍。

自定义语义主题规则

在设置中的editor.semanticTokenColorCustomizations属性可以在用户设置中自定义语义主题规则,语义着色适用于TypeScriptJavaScript,对JavaC++的支持正在开发中;它默认为内置主题启用,并被主题扩展所采用。

语义令牌样式

上面的设置更改了默认Dark +主题;它为参数(斜体和新颜色)赋予了新的样式,并在默认库中为所有符号(例如PromiseMap及其属性)加了下划线:

上面的设置更改了默认Dark +主题

Default Dark +主题中常量的新颜色

Default Dark+Default Light+主题的颜色常量与可写变量的阴影不同,下面就是一个例子:

Default Dark+ theme

Default Dark+ theme

Default Light+ theme

Default Light+ theme

禁用永久性撤消

设置项中的:files.restoreUndoStack,用于禁用持久性撤消。在关闭文件并重新打开文件时持久保留的“撤消/重做”堆栈,可以通过files.restoreUndoStack禁用该功能。

Integrated Terminal

删除了几个与提示符相关的命令

workbench.action.terminal.deleteWordLeft
workbench.action.terminal.deleteWordRight
workbench.action.terminal.deleteToLineStart
workbench.action.terminal.moveToLineStart
workbench.action.terminal.moveToLineEnd

它们已经被替换成了workbench.action.terminal.sendSequence命令的自定义键绑定,该命令以通用的方式做同样的事情。

被删除的与提示符相关的命令

支持在PowerShell中粘贴多行文字

workbench.action.terminal.sendSequence命令中有一个新的键绑定只适用于Windows,这个新的键绑定支持将Ctrl+V的文本直接发送到PowerShell,并由PSReadLine接收并正确处理:

支持在PowerShell中粘贴多行文字

使用这个新的键绑定之前和使用之后有着明显的差别:

使用这个新的键绑定之前和使用之后

定义双击分隔符

设置项中terminal.integrated.wordSeparators设置可允许自定义在终端中双击时用于分隔单词的分隔符,默认情况下,该分隔符为:

默认的双击分隔符

Debugging

自动debug配置

新的JavaScript调试器

上图便是新的JavaScript调试器预览和Mock Debug,该自动调试可以通过在快速打开(Ctrl+P)中输入'debug'(带空格)或触发Debug.Debug.Debug Quick Pick命令打开,选择并开始调试命令。debugUI界面将在下一版本中提供。

Task

禁用更快的快速选择

设置项中的task.quickOpen.showAll可用于设置禁用快速选择器,用以换回之前版本的快速选择器UI,因为在1.44版本中,运行任务时显示的任务选择器被做了一些修改。

运行保存

设置项中的task.saveBeforeRun可用于配置运行保存,用以避免在运行前保存编辑器。

Languages

TypeScript状态栏条目

VS Code在状态栏中显示当前的TypeScript版本:

VS Code在状态栏中显示当前的TypeScript版本

单击TypeScript版本会弹出适用于当前TypeScript项目的命令:

适用于当前TypeScript项目的命令

提示用户切换到TypeScript的工作区版本

设置项:typescript.enablePromptUseWorkspaceTsdk,设置为true后会有一个提示,询问用户是否要切换到工作区版本的 TypeScript

提示用户切换到TypeScript的工作区版本

Markdown链接到文件夹

Markdown文件中的编辑器链接和Markdown预览中的链接现在可以指向文件夹,点击这些链接中的一个,就可以在VS Code的文件资源管理器中显示目标文件夹。

Source Control

针对GitHub仓库的GitHub认证

VS Code现在可以自动对GitHub仓库进行GitHub认证,你现在可以克隆、拉取、推送代码到Github仓库,而无需在系统中配置任何证书管理器。即使是在集成终端中调用的Git命令,例如git push,现在也会自动对GitHub账户进行身份验证。

也可以通过设置项:git.githubAuthentication来禁用 GitHub 认证,可以通过设置项:git.terminalAuthentication 来禁用集成终端验证。

隐藏Git提交输入框

设置项:git.showCommitInput 可以隐藏 Git 代码仓库的提交输入框。

内联差异可编辑
当预览文件中的发生更改时,可以在快速差异编辑器中进行编辑。

内联差异可编辑

JavaScript调试器

可以从VS Code stable中的Marketplace安装这个新的JavaScript调试器,然后通过设置项: debug.javascript.usePreview 来启用这个新的JavaScript调试器。

JavaScript调试器

自动附加集成

设置项:debug.javascript.usePreview,用于打开自动附加集成,该功能将使用js-debug提供的新方法,该方法允许所有终端的工作方式像Debug Terminal一样。

对现有调试器的自动附加的改进如下:

  1. 立即连接调试器,使在程序的早期达到断点;
  2. 子进程将自动调试;
  3. 自动附加期间没有过程轮询开销;

从变量视图中复制混合值

在之前的版本中,会尝试从VS Code Variables视图复制混合、复杂的值(如对象),这样通常会导致数据被截断或不完整,而VS Codejs-debug中的更改让我们能够复制完整的值:

能够复制完整的值

图标主题

Visual Studio Code包含一组内置图标,这些图标在视图和编辑器中使用,也可以在悬停器,状态栏和扩展名中使用。 这些图标包含在Codicon图标字体中,用于默认的产品图标主题。

图标主题

在所有打开的项目中搜索TypeScript/JavaScript符号

当使用TypeScript 3.9+时,VS Code的全局符号搜索默认搜索所有打开的JavaScriptTypeScript项目的,之前的版本默认搜索当前项目;因为此项功能为默认选项,所以如果想要恢复之前版本的操作,可通过设置项:"typescript.workspaceSymbols.scope": "currentProject"来完成。

改进了终端中的链接显示

对终端中的链接支持做了一次大修改,终端中的链接功能更加强大:

  1. 能够更好的进行webfile:// 链接检测;
  2. 支持文件夹链接,可以在资源管理器中打开文件夹,也可以打开一个新的VS Code窗口;
  3. 针对不同类型的链接类型有不同的链接操作,从链接回退到搜索工作空间的链接的“字符”可通过设置项:terminal.integrated.wordSeparators来设置;
  4. 类似于编辑器中代码高亮的链接显示;
终端中的链接

动态显示icon和标题

允许在工作台上移动视图时在活动栏或面板中的新选项卡上创建新图标,当创建一个自定义容器时,将会使用第一个可见的视图的标题和图标作为容器的标题和图标,并允许通过重新排列视图来改变它。下面的图中:当一个新的视图被放置在视图容器的顶部时,它的图标和标题会被更新。

动态显示icon和标题

然后可以移动自定义容器及其所有包含的视图,在下面的图中显示了将终端和输出视图组合后拖入活动栏中:

移动容器和视图组合

扩展贡献

远程开发

继续远程开发的扩展开发,以允许你使用容器、远程计算机或WSL作为一个全功能的开发环境;在此版本中有不少亮点:

  1. 提供容器配置教程;
  2. 提供对WSL2 DockerPodman引擎的支持;
  3. 为本地和容器文件夹提供新的 devcontainer.json 变量;

GitHub Pull Requests and Issues

在之前的版本中,可在VSCode中执行GitHub Pull Request,在此版本中,不仅支持Pull Request,还支持Issues

Issue的支持包括:

  1. #-referenced issues@-mentioned users(提及的用户)提供悬停支持;
  2. 列出issue和用户的内联建议;
  3. 自定义查询issue
  4. 可以从issue直接开始处理问题,并创建一个分支,然后自动填写commit message

此外,还提供了对代码仓库的支持:

  1. 从远程代码仓库克隆源代码;
  2. 提交一个新版本到Github

下面的图中演示了在GitHub上发布到一个新的私有仓库,上传成功后,就可以直接GitHub上浏览代码仓库:

在VSCode中提交发布

GitHub Issue Notebooks

提供了GitHub Issue Notebooks扩展,用以管理issuepull request搜索,并对管理进行内联渲染;

GitHub Issue Notebooks

debug/callstack/context菜单内联组

支持对debug / callstack / context菜单内联组的贡献,当用户将鼠标悬停在Debug Session元素上时,将在调用堆栈中内嵌呈现给该组的命令。

debug/callstack/context菜单内联组

自定义的编辑器二进制API

重新实现了二进制自定义编辑器的拟议API,并自定义编辑器扩展到二进制文件格式,然后就可以在编辑器中打开二进制文件了,比如:图片、十六进制转储等:

自定义的编辑器二进制API

辅助功能

  1. 引入了聚焦上一部分F6)和聚焦下一部分Shift + F6)的快捷键操作,可以在编辑器工作台导航之间快速切换;
  2. 当鼠标焦点移动到状态工具栏时,屏幕阅读器可以读取焦点对准的内容;
  3. 在编辑器的工作台中的的每个列表和树形工具中引入了ARIA标签,可以打开编辑器、面包屑、问题视图等;

此次发布的VSCode 1.45亮点众多,也有不少的改进,VSCode越来越好了,也越来越受更多开发者的青睐,如果有感兴趣的小伙伴,不妨可以下载尝试一番。

此外,VSCode还提供了丰富的扩展API和调用文档,开发者们除了可以作为VSCode的使用者外,也还可以作为开发者,利用官方提供的扩展API,开发出基于VSCode运行的插件,拓展出自己想要的功能,除了给自己用,可以开源出来给更多的开发者使用。

完结,老夫虽不正经,但老夫一身的才华!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339