24.7.9.2 Region to Fontify after a Buffer Change

Когда буфер изменяется, регион, который Font Lock переформатирует, по умолчанию представляет собой наименьшую последовательность целых строк, охватывающую изменение. Хотя это в большинстве случаев работает хорошо, иногда это не так — например, когда изменение меняет синтаксическое значение текста в более ранней строке.

Вы можете увеличить (или даже уменьшить) регион для переформатирования, установив следующую переменную:

Переменная: font-lock-extend-after-change-region-function

Эта буфер-локальная переменная либо равна nil, либо является функцией, которую режим Font Lock вызывает для определения региона для сканирования и переформатирования.

Функция принимает три параметра: стандартные beg, end и old-len из after-change-functions (см. Change Hooks). Она должна вернуть либо конс с начальной и конечной позициями буфера (в этом порядке) региона для переформатирования, либо nil (что означает выбор региона стандартным способом). Эта функция должна сохранить точку, данные совпадения и текущее ограничение. Регион, который она возвращает, может начинаться или заканчиваться в середине строки.

Поскольку эта функция вызывается после каждого изменения буфера, она должна быть достаточно быстрой.