9.4.2 Стандартные свойства символов

Здесь мы перечисляем свойства символов, которые используются для специальных целей в Emacs. В следующей таблице, когда мы говорим «именованная функция», мы имеем в виду функцию, имя которой является соответствующим символом; аналогично для «именованной переменной» и т. д.

:advertised-binding

Это значение свойства указывает предпочтительную привязку клавиш при отображении документации для именованной функции. См. Подстановка привязок клавиш в документации.

char-table-extra-slots

Значение, если оно не равно nil, указывает количество дополнительных слотов в именованном типе таблицы символов. См. Таблицы символов.

customized-face
face-defface-spec
saved-face
theme-face

Эти свойства используются для записи стандартных, сохраненных, настраиваемых и тематических спецификаций лица. Не устанавливайте их напрямую; они управляются defface и связанными функциями. См. Определение лиц.

customized-value
saved-value
standard-value
theme-value

Эти свойства используются для записи стандартного значения, сохраненного значения, настраиваемого, но не сохраненного значения и тематических значений настраиваемой переменной. Не устанавливайте их напрямую; они управляются defcustom и связанными функциями. См. Определение переменных настройки.

definition-name

Это свойство используется для поиска определения символа в исходном коде, когда может быть трудно найти определение текстовым поиском в исходном файле. Например, define-derived-mode (см. Определение производных режимов) может неявно определить функцию или переменную, специфичную для режима; или ваша Lisp-программа может сгенерировать вызов во время выполнения defun для определения функции (см. Определение функций). В этих и аналогичных случаях свойство definition-name символа должно быть другим символом, определение которого можно найти текстовым поиском, и чей код определяет исходный символ. В примере с define-derived-mode значение этого свойства функций и переменных, которые он определяет, должно быть символом режима. Команды справки Emacs, такие как C-h f (см. Справка в Руководство GNU Emacs) используют это свойство для отображения определения символа с помощью кнопки в буфере *Help*, где отображается документация символа.

disabled

Если значение не равно nil, именованная функция отключается как команда. См. Отключение команд.

face-documentation

Значение хранит строку документации именованного лица. Это устанавливается автоматически defface. См. Определение лиц.

history-length

Значение, если оно не равно nil, указывает максимальную длину истории минибуфера для именованной переменной истории. См. История минибуфера.

interactive-form

Значение является интерактивной формой для именованной функции. Обычно вы не должны устанавливать это напрямую; вместо этого используйте специальную форму interactive. См. Интерактивный вызов.

menu-enable

Значение — это выражение для определения того, должен ли именованный элемент меню быть включен в меню. См. Простые элементы меню.

mode-class

Если значение равно special, именованный основной режим является специальным. См. Соглашения для основных режимов.

permanent-local

Если значение не равно nil, именованная переменная является буферно-локальной переменной, значение которой не должно сбрасываться при смене основных режимов. См. Создание и удаление буферно-локальных привязок.

permanent-local-hook

Если значение не равно nil, именованная функция не должна удаляться из локального значения переменной хука при смене основных режимов. См. Установка хуков.

pure

Если значение не равно nil, именованная функция считается чистой (см. Что такое функция?). Вызовы с константными аргументами могут быть вычислены во время компиляции. Это может перенести ошибки времени выполнения во время компиляции. Не путать с чистым хранилищем (см. Чистое хранилище).

risky-local-variable

Если значение не равно nil, именованная переменная считается рискованной как буферно-локальная переменная. См. Буферно-локальные переменные.

safe-function

Если значение не равно nil, именованная функция считается в целом безопасной для вычисления. См. Определение безопасности вызова функции.

safe-local-eval-function

Если значение не равно nil, именованная функция безопасна для вызова в формах буферно-локального вычисления. См. Буферно-локальные переменные.

safe-local-variable

Значение указывает функцию для определения безопасных буферно-локальных значений для именованной переменной. См. Буферно-локальные переменные. Поскольку это значение используется при загрузке файлов, функция должна быть эффективной и в идеале не должна приводить к загрузке каких-либо библиотек для определения безопасности (например, она не должна быть функцией автозагрузки).

side-effect-free

Неравное nil значение указывает, что именованная функция свободна от побочных эффектов (см. Что такое функция?), поэтому байт-компилятор может игнорировать вызов, значение которого не используется. Если значение свойства является error-free, байт-компилятор может даже удалить такие неиспользуемые вызовы. В дополнение к оптимизациям байт-компилятора, это свойство также используется для определения безопасности функции (см. Определение безопасности вызова функции).

important-return-value

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

undo-inhibit-region

Если не равно nil, именованная функция предотвращает ограничение операции undo активной областью, если undo вызывается сразу после функции. См. Отмена.

variable-documentation

Если не равно nil, это указывает строку документации именованной переменной. Это устанавливается автоматически defvar и связанными функциями. См. Определение лиц.