vscode1.60原生高性能括号着色无缝迁移方案(等价Bracket-Pair-Colorizer)

VSCode v1.60版本原生支持高性能多层级括号彩色着色功能,通过简单配置即可实现。本文介绍如何进行配置,并与Bracket-Pair-Colorizer插件进行对比,展示新版本在性能和稳定性上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

我们的 vscode 真的是太厉害了,在最新的 v1.60 版本中原生支持了 高性能 的多层级括号彩色着色。

回顾历史,多层级括号着色由伟大的 Bracket-Pair-Colorizer 插件提供,由于匹配引擎低效的原因,作者从 v1 又开了一个新 repo 作为 v2 ,即使如此,v2 的问题 case 也频出,远远没有 v1 好用,所以我作为这个插件的忠实使用者也一直在用 v1 版本。

但现在不一样了,时代变了大人。

vscode 1.60 更新日志:August 2021 (version 1.60)

多层级括号着色说明:High performance bracket pair colorization

无缝迁移

直接上代码:

  // settings.json
  
  "editor.bracketPairColorization.enabled": true,
  "workbench.colorCustomizations": {
    "editorBracketHighlight.foreground1": "#ffd700",
    "editorBracketHighlight.foreground2": "#da70d6",
    "editorBracketHighlight.foreground3": "#87cefa",
    "editorBracketHighlight.foreground4": "#ffd700",
    "editorBracketHighlight.foreground5": "#da70d6",
    "editorBracketHighlight.foreground6": "#87cefa",
    "editorBracketHighlight.unexpectedBracket.foreground": "#ff0000"
  }

到这里为止,多层级彩色括号已经无缝迁移完成,卸载或者禁用 Bracket-Pair-Colorizer 插件即可。

对有兴趣的读者,下面我们细说来源。

对于 Bracket-Pair-Colorizer 插件来说,默认支持三层着色,默认值为:

  "bracket-pair-colorizer-2.colors": ["Gold" ,"Orchid", "LightSkyBlue"]

但 vscode 原生支持的 theme 主题括号配色方案只支持设定 rgb 格式,我们将其转为 rgb 即为:

  "Gold" -> "#ffd700"
  "Orchid" -> "#da70d6"
  "LightSkyBlue" -> "#87cefa"

对应 vscode theme 配置项为 workbench.colorCustomizations 下面的 editorBracketHighlight.foreground1 从 1 到 6 ( vscode theme color - Editor colors

我们重复两遍配置上即可,对于有个人 diy 的也可以按照这个循环配满 6 个。

而对于错误匹配不识别的括号,在 Bracket-Pair-Colorizer 中选项对应:

  "bracket-pair-colorizer-2.unmatchedScopeColor": "Red"

转换为新 vscode 支持配置即为:

  "editorBracketHighlight.unexpectedBracket.foreground": "#ff0000"

下面看实战对比演示。

对比演示

常规测试

1.6 原生

识别正常。

Bracket-Pair-Colorizer 插件

识别正常。

压力测试
打包产物超长单行代码

1.6 原生

速度:打开文件瞬间着色

Bracket-Pair-Colorizer 插件

速度:5 s 后才和 theme 一同着色,刚打开全白。

边缘测试
复杂深层多种类对象

1.6 原生

识别正常。

Bracket-Pair-Colorizer 插件

识别正常。

复杂多层级多种类模板字符串

1.6 原生

识别正常

Bracket-Pair-Colorizer 插件

模板字符串中套中套 + 换行,出现问题!

在这个 case 下,将导致后面的对象括号全部识别崩溃,造成大面积影响。

总结

不得不说原生支持的性能就是强大,而且不存在 corner case ,即刻起:

vscode插件合集,05月最新,包括以下插件: bibhasdn.django-html-1.2.0 bibhasdn.django-snippets-1.1.0 bitlang.cobol-1.7.8 christian-kohler.npm-intellisense-1.3.0 christian-kohler.path-intellisense-1.4.2 chrmarti.regex-0.2.0 CoenraadS.bracket-pair-colorizer-1.0.37 daltonjorge.scala-0.0.5 danields761.dracula-theme-from-intellij-pythoned-0.1.4 DavidAnson.vscode-markdownlint-0.17.0 dbaeumer.vscode-eslint-1.4.10 donjayamanne.jupyter-1.1.4 donjayamanne.python-extension-pack-1.0.1 DotJoshJohnson.xml-1.9.2 DotJoshJohnson.xml-2.0.0 eg2.vscode-npm-script-0.3.4 eriklynd.json-tools-1.0.2 fisheva.eva-theme-0.3.1 formulahendry.code-runner-0.9.3 formulahendry.terminal-0.0.10 gerane.theme-druid-0.0.2 GrapeCity.gc-excelviewer-2.0.21 humao.rest-client-0.18.4 humy2833.ftp-simple-0.6.3 Ikuyadeu.r-0.5.9 Ikuyadeu.r-lsp-0.0.7 itryapitsin.scala-0.1.7 itryapitsin.scalasnippets-0.1.7 jasonnutter.search-node-modules-1.3.0 jithurjacob.nbpreviewer-1.0.0 josephtbradley.hive-sql-0.0.2 kalitaalexey.vscode-rust-0.4.2 kondratiev.sshextension-0.2.1 luqimin.forgive-green-0.2.1 magicstack.magicpython-1.0.12 mohsen1.prettify-json-0.0.3 mooman219.rust-assist-0.2.0 ms-python.anaconda-extension-pack-1.0.0 ms-python.python-2018.4.0 ms-toolsai.vscode-ai-0.1.8 ms-vscode.go-0.6.80 mtxr.sqltools-0.13.0 PKief.material-icon-theme-3.4.0 qub.qub-xml-vscode-1.2.8 redhat.java-0.25.0 redhat.vscode-yaml-0.0.12 rust-lang.rust-0.4.3 rust-lang.rust-0.4.4 scala-lang.scala-0.1.2 sensourceinc.vscode-sql-beautify-0.0.4 truman.autocomplate-shell-0.1.1 vahidk.tensorflow-snippets-0.3.3 vscjava.vscode-java-debug-0.9.0 vscjava.vscode-java-pack-0.3.0 vscjava.vscode-java-test-0.6.1 vscjava.vscode-maven-0.8.0 waderyan.nodejs-extension-pack-0.1.9 wholroyd.jinja-0.0.8 xabikos.javascriptsnippets-1.6.0 yzhang.markdown-all-in-one-1.3.0 yzhang.markdown-all-in-one-1.4.0 ZakCodes.rust-snippets-0.0.1 zhuangtongfa.material-theme-2.13.5 zhuangtongfa.material-theme-2.13.6
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值