11 points par xguru 2021-09-30 | 4 commentaires | Partager sur WhatsApp
  • L’extension Bracket Pair Colorizer, développée en 2016, a été installée 6 millions de fois

  • Sa version 2, avec des performances améliorées, a aussi été installée 3 millions de fois

  • Mais à cause des limites de la Decoration API de VS Code et de l’impossibilité d’accéder aux informations de tokens, elle reste lente sur les gros fichiers

→ un fichier de 42k mobilisait le CPU à 100 % pendant 10 secondes, bloquant toutes les autres opérations

  • À partir de la version 1.60, cette extension est directement implémentée dans le cœur de VS Code, avec une amélioration de performances de 10 000x (sur un exemple donné)

"editor.bracketPairColorization.enabled": true

  • Également appliqué à VS Code for Web et à Monaco
  • Cela montre que cette fonctionnalité elle-même est difficile à implémenter rapidement via une extension sans changement majeur de l’API

  • (L’article original contient aussi les détails de l’algorithme, mais ils ne sont pas repris ici car trop longs.)

4 commentaires

 
joyfui 2021-10-01

J’utilisais Bracket Pair Colorizer 2 depuis longtemps, mais en retournant sur la page de l’extension, j’ai vu qu’elle n’était plus maintenue.

J’ai supprimé l’extension et activé l’option editor.bracketPairColorization.enabled.

 
nicewook 2021-09-30

Je savais qu’il y avait eu une mise à jour, mais

  1. je ne savais pas que les performances s’étaient améliorées à ce point

  2. il se trouve que j’utilisais l’extension 1

  3. j’ai supprimé l’extension et activé cette fonctionnalité dans les paramètres. :)

 
xguru 2021-09-30

À première vue, on pourrait croire que le problème vient du fait que VSCode a implémenté en interne une extension connue, ce qui pose souci, mais

https://github.com/microsoft/vscode/…

l’auteur original de Bracket Pair Colorizer suit lui aussi ce problème de performances,

et il dit lui-même que cette extension est désormais devenue difficile à maintenir, au point qu’il lui est compliqué d’y toucher.

Autrement dit, si VS Code l’implémente rapidement en interne, c’est plutôt bénéfique pour tout le monde.

 
tkwlsrl 2021-09-30

J’ai eu la même pensée, donc tout le monde y a gagné ^_^ ( comme ça, le développeur d’origine n’a plus besoin d’en assurer la maintenance désormais.. haha )