Другие переменные шрифта
В этом разделе описываются дополнительные переменные, которые может установить основной режим с помощью other-vars в font-lock-defaults (см. Основные принципы подсветки шрифтов).
- Переменная: font-lock-mark-block-function
-
Если эта переменная не
nil, она должна быть функцией, которая вызывается без аргументов, чтобы выбрать область текста для переформатирования для команды M-x font-lock-fontify-block.Функция должна сообщать свой выбор, помещая область вокруг неё. Хороший выбор — это область текста, достаточно большая для получения правильных результатов, но не слишком большая, чтобы переформатирование стало медленным. Типичные значения —
mark-defunдля режимов программирования илиmark-paragraphдля текстовых режимов.
- Переменная: font-lock-extra-managed-props
Эта переменная определяет дополнительные свойства (кроме
font-lock-face), которые управляются режимом подсветки шрифтов. Она используетсяfont-lock-default-unfontify-region, который обычно управляет только свойствомfont-lock-face. Если вы хотите, чтобы подсветка шрифтов управляла и другими свойствами, вы должны указать их в facespec вfont-lock-keywords, а также добавить их в этот список. См. Подсветка на основе поиска.
- Переменная: font-lock-fontify-buffer-function
Функция для форматирования буфера. Значение по умолчанию —
font-lock-default-fontify-buffer.
- Переменная: font-lock-unfontify-buffer-function
Функция для снятия форматирования буфера. Она используется при отключении режима подсветки шрифтов. Значение по умолчанию —
font-lock-default-unfontify-buffer.
- Переменная: font-lock-fontify-region-function
Функция для форматирования области. Она должна принимать два аргумента: начало и конец области, и необязательный третий аргумент verbose. Если verbose не
nil, функция должна выводить сообщения об этапах выполнения. Значение по умолчанию —font-lock-default-fontify-region.
- Переменная: font-lock-unfontify-region-function
Функция для снятия форматирования области. Она должна принимать два аргумента: начало и конец области. Значение по умолчанию —
font-lock-default-unfontify-region.
- Переменная: font-lock-flush-function
Функция для объявления того, что форматирование области устарело. Она принимает два аргумента: начало и конец области. Значение по умолчанию этой переменной —
font-lock-after-change-function.
- Переменная: font-lock-ensure-function
Функция для проверки, что область текущего буфера отформатирована. Она вызывается с двумя аргументами: началом и концом области. Значение по умолчанию — функция, которая вызывает
font-lock-default-fontify-buffer, если буфер не отформатирован; эффект заключается в том, чтобы убедиться, что вся доступная часть буфера отформатирована.
- Функция: jit-lock-register function &optional contextual
-
Эта функция сообщает режиму подсветки шрифтов выполнить Lisp-функцию function всякий раз, когда ему нужно форматировать или переформатировать часть текущего буфера. Она вызывает function перед вызовом стандартных функций форматирования и передаёт ей два аргумента, start и end, которые указывают область, которую необходимо форматировать или переформатировать. Если function выполняет форматирование, она может вернуть список вида
(jit-lock-bounds beg . end), чтобы указать границы области, которую она фактически отформатировала; Подсветка шрифтов Just-In-Time (также известная как «JIT») будет использовать эту информацию для оптимизации последующих циклов перерисовки и областей текста буфера, которые будут переданы в будущие вызовы function.Необязательный аргумент contextual, если он не
nil, заставляет режим подсветки шрифтов всегда переформатировать синтаксически релевантную часть буфера, а не только изменённые строки. Этот аргумент обычно можно опустить.Когда подсветка шрифтов активируется в буфере, она вызывает эту функцию со значением contextual, отличным от
nil, если значениеfont-lock-keywords-only(см. Подсветка синтаксиса шрифтов) равноnil.
- Функция: jit-lock-unregister function
Если function ранее была зарегистрирована как функция форматирования с помощью
jit-lock-register, эта функция её отменяет.
- Команда: jit-lock-debug-mode &optional arg
Это вспомогательный режим, предназначенный для помощи в отладке кода, выполняемого подсветкой шрифтов JIT. Когда этот режим включён, большая часть кода, который подсветка шрифтов JIT обычно выполняет во время циклов перерисовки, где ошибки Lisp подавляются, вместо этого выполняется таймером. Таким образом, этот режим позволяет использовать средства отладки, такие как
debug-on-error(см. Отладка ошибок) и Edebug (см. Edebug) для поиска и исправления проблем в коде подсветки шрифтов и любом другом коде, выполняемом подсветкой шрифтов JIT.
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/Other-Font-Lock-Variables.html