Instructor wrote:по критерию производительности эта вещь уместнее в Coder::CodeFold
Да, потому что в XBrackets это выльется в ещё один огромный цикл, пробегающий по
всему тексту, с учётом обработки как конструкции
<tag ... />, так и пар
<tag ...> ... </tag>, между которыми нужно пропускать как вложенные теги, так и возможные комментарии. Плюс ещё оптимизация, чтобы не искать каждый раз заново, двигая каретку внутри одного и того же тега. Короче, работы невпроворот.
Если бы можно было запрашивать у Coder диапазоны парных скобок/тегов, тогда XBrackets мог бы вызывать подсветку этих диапазонов. Однако, такой подход в какой-то мере противоречит самому себе:
Шаг 1) XBrackets запрашивает у Coder диапазоны парных тегов;
Шаг 2) XBrackets просит Coder подсветить парные теги.
Спрашивается: а зачем тут вообще посредничество XBrackets, если Coder фактически всё делает сам?
Развивая эту тему дальше, можно предложить фактическую интеграцию XBrackets в Coder. Что для этого нужно? Да в принципе немного:
1) Добавить в Coder механизм и схему подсветки
Default, которая бы отвечала за подсветку парных скобок в любых типах файлов. Это бы убрало необходимость в той части XBrackets, которая отвечает за подсветку парных скобок. Половина настроек XBrackets сразу стала бы не нужна, поскольку тип файла уже известен, а его содержимое предварительно обработано.
2) Добавить в Coder возможность закрывать парные скобки и теги (опционально). Это бы убрало необходимость в оставшейся части XBrackets. Вся работа по поддержке парных скобок легла бы на схему подсветки
Default.