Другие переменные Font Lock
В этом разделе описаны дополнительные переменные, которые основной режим может задавать с помощью other-vars в font-lock-defaults (см. Основы Font Lock).
- Переменная: 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. Она используетсяfont-lock-default-unfontify-region, которая обычно управляет только свойствомfont-lock-face. Если вы хотите, чтобы Font Lock управлял и другими свойствами, их нужно указать в facespec вfont-lock-keywords, а также добавить в этот список. См. Форматирование шрифтами на основе поиска.
- Переменная: font-lock-fontify-buffer-function
Функция, используемая для оформления шрифтами буфера. Значение по умолчанию —
font-lock-default-fontify-buffer.
- Переменная: font-lock-unfontify-buffer-function
Функция, используемая для отмены оформления шрифтами буфера. Она используется при отключении режима Font Lock. Значение по умолчанию —
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
-
Эта функция указывает режиму Font Lock вызывать функцию Lisp function всякий раз, когда требуется оформить шрифтами или повторно оформить часть текущего буфера. Она вызывает function перед вызовом функций оформления шрифтами по умолчанию и передаёт ей два аргумента — start и end, задающих область, которую нужно оформить или повторно оформить шрифтами. Если function выполняет оформление шрифтами, она может вернуть список вида
(jit-lock-bounds beg . end), указывающий границы области, которую она фактически оформила; JIT Font Lock (также известный как «JIT») использует эти сведения для оптимизации последующих циклов перерисовки и областей текста буфера, передаваемых будущим вызовам function.Необязательный аргумент contextual, если он не-
nil, заставляет режим Font Lock всегда повторно оформлять синтаксически значимую часть буфера, а не только изменённые строки. Обычно этот аргумент можно опустить.При активации Font Lock в буфере эта функция вызывается со значением contextual, не-
nil, если значениеfont-lock-keywords-only(см. Синтаксический Font Lock) равноnil.
- Функция: jit-lock-unregister function
Если function ранее была зарегистрирована как функция оформления шрифтами с помощью
jit-lock-register, эта функция отменяет её регистрацию.
- Команда: jit-lock-debug-mode &optional arg
Это второстепенный режим, предназначенный для отладки кода, выполняемого JIT Font Lock. Когда этот режим включён, большая часть кода, который JIT Font Lock обычно выполняет во время циклов перерисовки, подавляя ошибки Lisp, выполняется вместо этого таймером. Таким образом, этот режим позволяет использовать средства отладки, такие как
debug-on-error(см. Вызов отладчика при ошибке) и Edebug (см. Edebug), для поиска и исправления проблем в коде Font Lock и любом другом коде, выполняемом JIT Font Lock. Ещё одна команда, которая может быть полезна при разработке и отладке Font Lock, —font-lock-debug-fontify; см. Основы Font Lock.
Copyright © 1990-1996, 1998-2026 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