Интересно, как в целом это реализуется. Алгоритмы, средства. Хочу сделать простенький редактор кода на c#, споткнулся на корректной подсветке. Сейчас сделано через regexp по набору ключевых слов, но не думаю, что это правильно. Хотелось бы в теории хотя бы узнать.
А если говорить про серьёзные IDE, то в них конечно же делается не regexp'ами, а проводится постоянный разбор текста и построение синтаксического дерева, поскольку это помимо подсветки синтаксиса даёт ещё и "понимаение" кода (какие есть классы, методы и т.д.).
Да тут скорее вопрос, как менять цвет ключевых слов, чтобы визуально ничего не наблюдалось, кроме самой смены цвета. Сейчас реализовано через richtextbox.Select, но при таком способе курсор скачет по всему тексту. Вот этого нужно избежать. Пока все будет работать на регулярках, потом возможно переделаю через деревья разбора