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.  SeeKeys in
      Documentation.
 
 ‘char-table-extra-slots’
      The value, if non-‘nil’, specifies the number of extra slots in the
      named char-table type.  SeeChar-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.  SeeDefining
      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.  SeeVariable Definitions.
 
 ‘disabled’
      If the value is non-‘nil’, the named function is disabled as a
      command.  SeeDisabling Commands.
 
 ‘face-documentation’
      The value stores the documentation string of the named face.  This
      is set automatically by ‘defface’.  SeeDefining Faces.
 
 ‘history-length’
      The value, if non-‘nil’, specifies the maximum minibuffer history
      length for the named history list variable.  SeeMinibuffer
      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.  SeeInteractive Call.
 
 ‘menu-enable’
      The value is an expression for determining whether the named menu
      item should be enabled in menus.  SeeSimple Menu Items.
 
 ‘mode-class’
      If the value is ‘special’, the named major mode is special.  See
      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.
      SeeCreating 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.
      SeeSetting 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.  SeeFile Local Variables.
 
 ‘safe-function’
      If the value is non-‘nil’, the named function is considered
      generally safe for evaluation.  SeeFunction Safety.
 
 ‘safe-local-eval-function’
      If the value is non-‘nil’, the named function is safe to call in
      file-local evaluation forms.  SeeFile Local Variables.
 
 ‘safe-local-variable’
      The value specifies a function for determining safe file-local
      values for the named variable.  SeeFile Local Variables.
 
 ‘side-effect-free’
      A non-‘nil’ value indicates that the named function is free of
      side-effects, for determining function safety (SeeFunction
      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.  SeeDefining Faces.