Область для форматирования шрифтов после изменения буфера
При изменении буфера область, которую Font Lock переформатирует шрифтами, по умолчанию представляет собой наименьшую последовательность полных строк, охватывающую изменение. Хотя это работает хорошо в большинстве случаев, иногда это не так — например, когда изменение изменяет синтаксическое значение текста в предыдущей строке.
Вы можете увеличить (или даже уменьшить) область для переформатирования шрифтов, установив следующую переменную:
- Переменная: font-lock-extend-after-change-region-function
-
Эта переменная, локальная для буфера, либо
nil, либо функция, которую режим Font Lock должен вызвать для определения области, которую необходимо просканировать и переформатировать шрифтами.Функции передаются три параметра, стандартные beg, end и old-len из
after-change-functions(см. Обработчики изменений). Она должна вернуть либо список начальной и конечной позиций буфера (в указанном порядке) области для переформатирования шрифтов, либоnil(что означает выбор области стандартным способом). Эта функция должна сохранить точку, данные сопоставления и текущее ограничение. Область, которую она возвращает, может начинаться или заканчиваться посередине строки.Поскольку эта функция вызывается после каждого изменения буфера, она должна быть достаточно быстрой.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Region-to-Refontify.html