Регулярные выражения - это, безусловно, первое место, с которого начинается большинство. Однако они не могут справиться со многими крайними случаями, которые встречаются в большинстве языков - текст, который выглядит как ключевые слова, может быть в найденных строковых литералах, строковые литералы в свою очередь могут содержать экранированные разделители, а также специальные символы. То же самое касается комментариев и т. Д.
В основном, для хорошей работы по выделению синтаксиса необходимо выполнить лексирование источника - проанализировать его с применением эвристики, зависящей от языка, для построения списка областей, где каждый регион источника помечается как он есть. быть стилизованным.
По мере внесения изменений вы можете снова применить языковые правила, чтобы увидеть, насколько это изменение может изменить представление региона. Например, ввод буквы внутри строкового литерала просто увеличивает длину строкового литерала, но ввод закрывающей кавычки усекает регион и превращает оставшуюся его часть в код с учетом всех других правил лексизма.