Spec-Zone.ru › Elisp

Область для форматирования шрифтов после изменения буфера

При изменении буфера область, которую 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API