История изменений
Исправление x3al, (текущая версия) :
Как насчёт разбивать текст на куски и в первую очередь подсвечивать активный кусок? 1 кусок внешний лексер должен обработать за незаметное время. Потом может последовать команда «раскрась в неактивном куске такую-то фигню т.к. тут она определилась», но неактивный нас меньше интересует и, в целом, может чуть подождать.
И да, обработку неактивных кусков можно слегка debounce'ить. Чтобы не обрабатывать весь документ по каждому событию ввода.
Исходная версия x3al, :
Как насчёт разбивать текст на куски и в первую очередь подсвечивать активный кусок? 1 кусок внешний лексер должен обработать за незаметное время. Потом может последовать команда «раскрась в неактивном куске такую-то фигню т.к. тут она определилась», но неактивный нас меньше интересует и, в целом, может чуть подождать.
И да, обработку неактивных кусков можно слегка debounce'ить.