Я написал похожую подсветку синтаксиса в .NET 1.1, и производительность ужасна. Я не возвращался к этому вопросу много лет, но мне кажется, что должен быть лучший путь.
Я полагаю, что ответ может лежать в документации RTF . Вы можете определить таблицу цветов и / или стили, а затем использовать их для переноса подходящих слов. Проверьте страницу 130 «Свойства форматирования шрифта (символа)», cf N и cs N . Хитрость заключается в том, чтобы найти совпадения и вставить управляющие символы как можно быстрее. Я RegEx будет самый быстрый метод сканирования.
Вы также можете попытаться ограничить подсветку разумной областью вокруг видимого пространства или даже рассмотреть возможность направления действия выделения на другой процесс.
Мне определенно было бы интересно найти хорошее решение этой проблемы.