Spec-Zone.ru › Elisp

Автоматическое назначение лиц

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

Переменная: fontification-functions

Эта переменная содержит список функций, вызываемых системой Emacs при необходимости непосредственно перед перерисовкой. Они вызываются, даже если режим Font Lock отключён. Когда режим Font Lock включён, эта переменная обычно содержит только одну функцию: jit-lock-function.

Функции вызываются в указанном порядке с одним аргументом — позицией в буфере pos. В совокупности они должны пытаться назначать лица тексту в текущем буфере, начиная с pos.

Функции должны регистрировать назначенные ими лица, устанавливая свойство face. Они также должны добавлять свойство fontified, отличное от nil, всему тексту, которому они назначили лица. Это свойство сообщает системе перерисовки, что этому тексту уже назначены лица.

Вероятно, функциям стоит ничего не делать, если следующий за pos символ уже имеет свойство fontified, отличное от nil, но это не обязательно. Если одна функция переопределяет назначения, сделанные предыдущей, то имеют значение свойства, установленные после завершения последней функции.

Для повышения эффективности рекомендуется писать эти функции так, чтобы при каждом вызове они обычно назначали лица примерно 400–600 символам.

Обратите внимание: если текст буфера содержит очень длинные строки, эти функции вызываются так, как если бы они находились в форме with-restriction (см. Ограничение области буфера), с меткой long-line-optimizations-in-fontification-functions и с буфером, ограниченным областью вокруг pos.

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/Auto-Faces.html

Spec-Zone.ru

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