VSCodeのBracket Pair色分けを1万倍高速化
(code.visualstudio.com)-
2016年に開発された Bracket Pair Colorizer 拡張は600万回インストール
-
性能を改善したバージョン2も300万回インストール
-
しかし VS Code Decoration API の限界とトークン情報にアクセスできないため、依然として大きなファイルでは遅い
→ 42k のファイルでは10秒間 CPU を100%使用し、他のすべての動作が停止
- 1.60 からはこの拡張自体を VS Code コアで実装し、(特定の例では)1万倍高速化
→ "editor.bracketPairColorization.enabled": true
- VS Code for Web と Monaco にも適用
-
この機能自体が大幅な API 変更なしでは、拡張側で高速に実装するのが難しいということ
-
(元の記事にはアルゴリズムの詳細内容も含まれているが、長すぎるためここでは省略)
4件のコメント
以前から Bracket Pair Colorizer 2 を使っていましたが、久しぶりに拡張機能のページを見に行ったところ、すでにメンテナンスが終了していました。
拡張機能を削除し、
editor.bracketPairColorization.enabledオプションを有効にしました。更新されたことは知っていましたが
パフォーマンスがここまで向上しているとは知りませんでした
私は拡張機能 1 を使っていたんですね
拡張機能を削除して、設定でこの機能を有効にしました。 :)
一見すると、有名な拡張機能を VSCode が内部実装して問題になっているようにも見えますが、
https://github.com/microsoft/vscode/…
Bracket Pair Colorizer の作者本人もこの性能問題を追っており、
当の本人でさえ、この拡張機能はもはや自分の手では手を入れにくいほどになっていて、メンテナンスが難しいと話しています。
つまり、VS Code が内部で高速に実装してくれたほうが、むしろ双方にとって良いということです。
私も同じことを考えていましたが、ウィンウィンになりましたね ^_^(もともとの開発者はこれで、もうこれ以上メンテナンスしなくて済むので。笑)