elisp: Standard Properties
8.4.2 Standard Symbol Properties
--------------------------------
Here, we list the symbol properties which are used for special purposes
in Emacs. In the following table, whenever we say “the named function”,
that means the function whose name is the relevant symbol; similarly for
“the named variable” etc.
‘:advertised-binding’
This property value specifies the preferred key binding, when
showing documentation, for the named function. Keys in
Documentation.
‘char-table-extra-slots’
The value, if non-‘nil’, specifies the number of extra slots in the
named char-table type. Char-Tables.
‘customized-face’
‘face-defface-spec’
‘saved-face’
‘theme-face’
These properties are used to record a face’s standard, saved,
customized, and themed face specs. Do not set them directly; they
are managed by ‘defface’ and related functions. Defining
Faces.
‘customized-value’
‘saved-value’
‘standard-value’
‘theme-value’
These properties are used to record a customizable variable’s
standard value, saved value, customized-but-unsaved value, and
themed values. Do not set them directly; they are managed by
‘defcustom’ and related functions. Variable Definitions.
‘disabled’
If the value is non-‘nil’, the named function is disabled as a
command. Disabling Commands.
‘face-documentation’
The value stores the documentation string of the named face. This
is set automatically by ‘defface’. Defining Faces.
‘history-length’
The value, if non-‘nil’, specifies the maximum minibuffer history
length for the named history list variable. Minibuffer
History.
‘interactive-form’
The value is an interactive form for the named function. Normally,
you should not set this directly; use the ‘interactive’ special
form instead. Interactive Call.
‘menu-enable’
The value is an expression for determining whether the named menu
item should be enabled in menus. Simple Menu Items.
‘mode-class’
If the value is ‘special’, the named major mode is special.
Major Mode Conventions.
‘permanent-local’
If the value is non-‘nil’, the named variable is a buffer-local
variable whose value should not be reset when changing major modes.
Creating Buffer-Local.
‘permanent-local-hook’
If the value is non-‘nil’, the named function should not be deleted
from the local value of a hook variable when changing major modes.
Setting Hooks.
‘pure’
If the value is non-‘nil’, the named function is considered to be
side-effect free. Calls with constant arguments can be evaluated
at compile time. This may shift run time errors to compile time.
‘risky-local-variable’
If the value is non-‘nil’, the named variable is considered risky
as a file-local variable. File Local Variables.
‘safe-function’
If the value is non-‘nil’, the named function is considered
generally safe for evaluation. Function Safety.
‘safe-local-eval-function’
If the value is non-‘nil’, the named function is safe to call in
file-local evaluation forms. File Local Variables.
‘safe-local-variable’
The value specifies a function for determining safe file-local
values for the named variable. File Local Variables.
‘side-effect-free’
A non-‘nil’ value indicates that the named function is free of
side-effects, for determining function safety (Function
Safety) as well as for byte compiler optimizations. Do not set
it.
‘variable-documentation’
If non-‘nil’, this specifies the named variable’s documentation
string. This is set automatically by ‘defvar’ and related
functions. Defining Faces.