High performance bracket pair colorization
Вчера вышел VS Code 1.60 и в нём из коробки появилась подсветка скобочных пар. Очень удобная штука, когда есть большая вложенность, и не очень понятно, где начинается и заканчивается какая-нибудь функция.
Эта фича призвана заменить Bracket Pair Colorizer и Bracket Pair Colorizer 2 (даже не знал, что есть и вторая версия), у которых в сумме 9 миллионов загрузок.
Есть 2 причины, по которым мне захотелось рассказать об этой штуке:
1. Под «high performance» скрывается ускорение в 10 000 раз о_О.
2. Очень детальное описание проблемы, вариантов решения и классное взаимодействие с комьюнити в процессе разработки.
Основная проблема заключалась в отсутствии информации о токенах для нахождения пар. Расширениям, в свою очередь, приходилось повторно парсить весь файл, что сказывалось на производительности.
Выбор стоял между двумя основными вариантами: найти эффективный способ передачи токенов расширениям или же встроить эту функциональность в VS Code из коробки (тогда и передавать ничего не надо). Обязательно почитайте комментарий с вариантами решения проблемы.
Ещё здесь немного деталей о реализации и сам пул-реквест.
Ну а включить фичу можно через опцию
P.S. Мне всегда было сложно отдавать какие-то задачи на ресерч коллегам, т.к. я регулярно сталкивался с «я выбрал вариант Б». А что, почему, чем отличается и т.д. приходилось вытягивать клещами и просить как-то задокументировать, чтобы осталась информация для потомков о принятом решении. Можете не стесняться скидывать это ишью таким ребятам, может у них что-то щёлкнет в головах 🙂
Вчера вышел VS Code 1.60 и в нём из коробки появилась подсветка скобочных пар. Очень удобная штука, когда есть большая вложенность, и не очень понятно, где начинается и заканчивается какая-нибудь функция.
Эта фича призвана заменить Bracket Pair Colorizer и Bracket Pair Colorizer 2 (даже не знал, что есть и вторая версия), у которых в сумме 9 миллионов загрузок.
Есть 2 причины, по которым мне захотелось рассказать об этой штуке:
1. Под «high performance» скрывается ускорение в 10 000 раз о_О.
2. Очень детальное описание проблемы, вариантов решения и классное взаимодействие с комьюнити в процессе разработки.
Основная проблема заключалась в отсутствии информации о токенах для нахождения пар. Расширениям, в свою очередь, приходилось повторно парсить весь файл, что сказывалось на производительности.
Выбор стоял между двумя основными вариантами: найти эффективный способ передачи токенов расширениям или же встроить эту функциональность в VS Code из коробки (тогда и передавать ничего не надо). Обязательно почитайте комментарий с вариантами решения проблемы.
Ещё здесь немного деталей о реализации и сам пул-реквест.
Ну а включить фичу можно через опцию
"editor.bracketPairColorization.enabled": true
.P.S. Мне всегда было сложно отдавать какие-то задачи на ресерч коллегам, т.к. я регулярно сталкивался с «я выбрал вариант Б». А что, почему, чем отличается и т.д. приходилось вытягивать клещами и просить как-то задокументировать, чтобы осталась информация для потомков о принятом решении. Можете не стесняться скидывать это ишью таким ребятам, может у них что-то щёлкнет в головах 🙂