Может кто знает, где можно почитать о сабже?
Наверняка вся эта тема - адский баян, начиная с середины прошлого века :) Но толковых трудов по теме не нагуглил. Может кто заранее знает?
===
Детали
Нужно реализовать простую отображалку кода с подсветкой синтаксиса.
Парсер уже есть, о коде можно узнать всё что угодно, проблема именно в грамотном отображении. (Использовать готовые решения типа эклипсы нельзя, арсенал ограничен минимальным набором типа «картинка»+«шрифт», всё остальное должно быть велосипедом)
Больше всего интересуют проблемы перфоманса перекрашивания текста. Если на каждый новый символ производить полный переразбор текста, а потом перекрашивать заново, то всё будет нещадно тормозить и/или мигать (как и происходит в кое-каких редакторах). Т.е. с точки зрения графики нужно как минимум определять регион и устраивать блиттинг, а сточки зрения парсанья нужно парсить дерево (ну или что там, если дерево неприменимо) необычным макаром исходя из региона. Ну и в общем, из этого можно сочинить целую философию, и если уже есть готовая, то проще проехать на готовеньком ;)
Есть еще вопросы. Например, сейчас многие текстовые редакторы начинают тормозить, когда строки очень длинные. Или когда начинаешь редактировать середину длинной строки. Как борются с этими проблемами? Транзакционная модель и ерархические undo-redo - тоже вопрос, но приоритет у него поменьше.
Форум —
Development





