此次发布的VS Code
版本为1.45
,主要更新如下:
- 可访问性改进:聚焦命令导航工作台,状态栏可访问性。
- 通过鼠标滚轮切换编辑器选项卡;
- 更快的语法高亮显示 :编程语言的着色速度提高了3倍;
- 用户可自定义语义颜色;
- 支持
GitHub
认证; - 为
GitHub Issue
和User
提供内联管理; - 远程开发,容器配置建议,支持
WSL 2
;
以下便是详细内容:
工作台
使用鼠标滚轮切换选项卡
在设置中新增了一项设置:workbench.editor.rollToSwitchTabs
,开启后,便可以通过鼠标滚轮切换编辑器中打开的选项卡;
当你把鼠标焦点移动到编辑器标签页所在的区域,并开始滚动鼠标滚轮时,打开的标签页便会切换到编辑器中打开的其他的选项卡,详情如下:
在鼠标滚轮滚动的同时,按下shift
键,选项卡就会向相反的方向切换。
自定义窗口标题分隔符
默认情况下,使用"-"作为窗口标题中使用的分隔符,现在,设置中的新设置项:window.titleSeparator,可用于修改窗口标题中使用的分隔符;
在图中,红线标注的便是窗口标题中使用的分隔符。
修改了侧栏标题的默认主题
为默认的深色和浅色主题更新了侧栏部分标题的样式,在使用透明背景时,并为每个标题显示一个边框:
在上图中,除了OPEN EDITORS栏目没有边框外,其余的几个栏目都有一个明显的边框。
编辑器
语法高亮显示
此版本便编写了一个专门的 Web Assembly
绑定,为TextMate
解释器的使用做了大量的优化,采用了几个月前刚刚添加到oniguruma
的新API
;在高亮显示常规编程文件方面的性能提高了3
倍。
自定义语义主题规则
在设置中的editor.semanticTokenColorCustomizations
属性可以在用户设置中自定义语义主题规则,语义着色适用于TypeScript
和JavaScript
,对Java
和C++
的支持正在开发中;它默认为内置主题启用,并被主题扩展所采用。
上面的设置更改了默认Dark +
主题;它为参数(斜体和新颜色)赋予了新的样式,并在默认库中为所有符号(例如Promise
,Map
及其属性)加了下划线:
Default Dark +主题中常量的新颜色
Default Dark+
和Default Light+
主题的颜色常量与可写变量的阴影不同,下面就是一个例子:
Default Dark+ 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
接收并正确处理:
使用这个新的键绑定之前和使用之后有着明显的差别:
定义双击分隔符
设置项中terminal.integrated.wordSeparators
设置可允许自定义在终端中双击时用于分隔单词的分隔符,默认情况下,该分隔符为:
Debugging
自动debug配置
上图便是新的JavaScript
调试器预览和Mock Debug
,该自动调试可以通过在快速打开(Ctrl+P
)中输入'debug'
(带空格)或触发Debug.Debug.Debug Quick Pick
命令打开,选择并开始调试命令。debug
的UI
界面将在下一版本中提供。
Task
禁用更快的快速选择
设置项中的task.quickOpen.showAll
可用于设置禁用快速选择器,用以换回之前版本的快速选择器UI
,因为在1.44
版本中,运行任务时显示的任务选择器被做了一些修改。
运行保存
设置项中的task.saveBeforeRun
可用于配置运行保存,用以避免在运行前保存编辑器。
Languages
TypeScript状态栏条目
VS Code
在状态栏中显示当前的TypeScript
版本:
单击TypeScript
版本会弹出适用于当前TypeScript
项目的命令:
提示用户切换到TypeScript的工作区版本
设置项:typescript.enablePromptUseWorkspaceTsdk
,设置为true
后会有一个提示,询问用户是否要切换到工作区版本的 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
调试器。
自动附加集成
设置项:debug.javascript.usePreview
,用于打开自动附加集成,该功能将使用js-debug
提供的新方法,该方法允许所有终端的工作方式像Debug Terminal
一样。
对现有调试器的自动附加的改进如下:
- 立即连接调试器,使在程序的早期达到断点;
- 子进程将自动调试;
- 自动附加期间没有过程轮询开销;
从变量视图中复制混合值
在之前的版本中,会尝试从VS Code Variables
视图复制混合、复杂的值(如对象),这样通常会导致数据被截断或不完整,而VS Code
和js-debug
中的更改让我们能够复制完整的值:
图标主题
Visual Studio Code
包含一组内置图标,这些图标在视图和编辑器中使用,也可以在悬停器,状态栏和扩展名中使用。 这些图标包含在Codicon
图标字体中,用于默认的产品图标主题。
在所有打开的项目中搜索TypeScript/JavaScript符号
当使用TypeScript 3.9+
时,VS Code
的全局符号搜索默认搜索所有打开的JavaScript
和TypeScript
项目的,之前的版本默认搜索当前项目;因为此项功能为默认选项,所以如果想要恢复之前版本的操作,可通过设置项:"typescript.workspaceSymbols.scope": "currentProject"
来完成。
改进了终端中的链接显示
对终端中的链接支持做了一次大修改,终端中的链接功能更加强大:
- 能够更好的进行
web
和file://
链接检测; - 支持文件夹链接,可以在资源管理器中打开文件夹,也可以打开一个新的
VS Code
窗口; - 针对不同类型的链接类型有不同的链接操作,从链接回退到搜索工作空间的链接的“字符”可通过设置项:
terminal.integrated.wordSeparators
来设置; - 类似于编辑器中代码高亮的链接显示;
动态显示icon和标题
允许在工作台上移动视图时在活动栏或面板中的新选项卡上创建新图标,当创建一个自定义容器时,将会使用第一个可见的视图的标题和图标作为容器的标题和图标,并允许通过重新排列视图来改变它。下面的图中:当一个新的视图被放置在视图容器的顶部时,它的图标和标题会被更新。
然后可以移动自定义容器及其所有包含的视图,在下面的图中显示了将终端和输出视图组合后拖入活动栏中:
扩展贡献
远程开发
继续远程开发的扩展开发,以允许你使用容器、远程计算机或WSL
作为一个全功能的开发环境;在此版本中有不少亮点:
- 提供容器配置教程;
- 提供对
WSL2 Docker
和Podman
引擎的支持; - 为本地和容器文件夹提供新的
devcontainer.json
变量;
GitHub Pull Requests and Issues
在之前的版本中,可在VSCode
中执行GitHub Pull Request
,在此版本中,不仅支持Pull Request
,还支持Issues
;
Issue
的支持包括:
- 对
#-referenced issues
和@-mentioned users
(提及的用户)提供悬停支持; - 列出
issue
和用户的内联建议; - 自定义查询
issue
; - 可以从
issue
直接开始处理问题,并创建一个分支,然后自动填写commit message
;
此外,还提供了对代码仓库的支持:
- 从远程代码仓库克隆源代码;
- 提交一个新版本到
Github
;
下面的图中演示了在GitHub
上发布到一个新的私有仓库,上传成功后,就可以直接GitHub
上浏览代码仓库:
GitHub Issue Notebooks
提供了GitHub Issue Notebooks
扩展,用以管理issue
和pull request
搜索,并对管理进行内联渲染;
debug/callstack/context菜单内联组
支持对debug / callstack / context
菜单内联组的贡献,当用户将鼠标悬停在Debug Session
元素上时,将在调用堆栈中内嵌呈现给该组的命令。
自定义的编辑器二进制API
重新实现了二进制自定义编辑器的拟议API
,并自定义编辑器扩展到二进制文件格式,然后就可以在编辑器中打开二进制文件了,比如:图片、十六进制转储等:
辅助功能
- 引入了聚焦上一部分(
F6
)和聚焦下一部分(Shift + F6
)的快捷键操作,可以在编辑器工作台导航之间快速切换; - 当鼠标焦点移动到状态工具栏时,屏幕阅读器可以读取焦点对准的内容;
- 在编辑器的工作台中的的每个列表和树形工具中引入了
ARIA
标签,可以打开编辑器、面包屑、问题视图等;
此次发布的VSCode 1.45
亮点众多,也有不少的改进,VSCode
越来越好了,也越来越受更多开发者的青睐,如果有感兴趣的小伙伴,不妨可以下载尝试一番。
此外,VSCode
还提供了丰富的扩展API
和调用文档,开发者们除了可以作为VSCode
的使用者外,也还可以作为开发者,利用官方提供的扩展API
,开发出基于VSCode
运行的插件,拓展出自己想要的功能,除了给自己用,可以开源出来给更多的开发者使用。
完结,老夫虽不正经,但老夫一身的才华!