Задавался вопросом, на чем пишут редакторы и IDE, многие на плюсах (С++). Да и подходит он для таких программ. Кто на других языках, вводи в гугле запросы "На каком языке написан <редактор>" и смотри.
Для понимания шаблонов проектирования советую прочесть Роберта Лафоре алгоритмы и структуры данных на java от начала до конца, если раньше этому не учились
Конкретно меня интересует преобразование текстового представления кода в дерево объектов. Затем это дерево объектов можно раскрасить цветами, на сколько я понимаю так работает подсветка кода, поправьте меня, если не прав.