Previous: Accessing Symbol Properties, Up: Symbol Properties [Contents][Index]
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-bindingThis property value specifies the preferred key binding, when showing documentation, for the named function. See Substituting Key Bindings in Documentation.
char-table-extra-slotsThe value, if non-nil, specifies the number of extra slots in
the named char-table type. See Char-Tables.
customized-faceface-defface-specsaved-facetheme-faceThese 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. See Defining Faces.
customized-valuesaved-valuestandard-valuetheme-valueThese 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. See Defining Customization Variables.
definition-nameThis property is used to find the definition of a symbol in the source
code, when it might be hard to find the definition by textual search
of the source file. For example, a define-derived-mode
(see Defining Derived Modes) might define a mode-specific function or a
variable implicitly; or your Lisp program might generate a run-time
call to defun to define a function (see Defining Functions). In these and similar cases, the definition-name
property of the symbol should be another symbol whose definition can
be found by textual search and whose code defines the original symbol.
In the example with define-derived-mode, the value of this
property of the functions and variables it defines should be the mode
symbol. The Emacs Help commands such as C-h f (see Help in The GNU Emacs Manual) use this property to show the definition
of a symbol via a button in the *Help* buffer where the
symbol’s documentation is shown.
disabledIf the value is non-nil, the named function is disabled as a
command. See Disabling Commands.
face-documentationThe value stores the documentation string of the named face. This is
set automatically by defface. See Defining Faces.
history-lengthThe value, if non-nil, specifies the maximum minibuffer history
length for the named history list variable. See Minibuffer History.
interactive-formThe value is an interactive form for the named function. Normally,
you should not set this directly; use the interactive special
form instead. See Interactive Call.
menu-enableThe value is an expression for determining whether the named menu item should be enabled in menus. See Simple Menu Items.
mode-classIf the value is special, the named major mode is special.
See Major Mode Conventions.
permanent-localIf the value is non-nil, the named variable is a buffer-local
variable whose value should not be reset when changing major modes.
See Creating and Deleting Buffer-Local Bindings.
permanent-local-hookIf the value is non-nil, the named function should not be
deleted from the local value of a hook variable when changing major
modes. See Setting Hooks.
pure ¶If the value is non-nil, the named function is considered to be
pure (see What Is a Function?). Calls with constant arguments can
be evaluated at compile time. This may shift run time errors to
compile time. Not to be confused with pure storage (see Pure Storage).
risky-local-variableIf the value is non-nil, the named variable is considered risky
as a file-local variable. See File Local Variables.
safe-functionIf the value is non-nil, the named function is considered
generally safe for evaluation. See Determining whether a Function is Safe to Call.
safe-local-eval-functionIf the value is non-nil, the named function is safe to call in
file-local evaluation forms. See File Local Variables.
safe-local-variableThe value specifies a function for determining safe file-local values for the named variable. See File Local Variables. Since this value is consulted when loading files, the function should be efficient and should ideally not lead to loading any libraries to determine the safeness (e.g., it should not be an autoloaded function).
side-effect-free ¶A non-nil value indicates that the named function is free of
side effects (see What Is a Function?), so the byte compiler may
ignore a call whose value is unused. If the property’s value is
error-free, the byte compiler may even delete such unused
calls. In addition to byte compiler optimizations, this property is
also used for determining function safety (see Determining whether a Function is Safe to Call).
important-return-value ¶A non-nil value makes the byte compiler warn about code that
calls the named function without using its returned value. This is
useful for functions where doing so is likely to be a mistake.
undo-inhibit-regionIf non-nil, the named function prevents the undo operation
from being restricted to the active region, if undo is invoked
immediately after the function. See Undo.
variable-documentationIf non-nil, this specifies the named variable’s documentation
string. This is set automatically by defvar and related
functions. See Defining Faces.
Previous: Accessing Symbol Properties, Up: Symbol Properties [Contents][Index]