elisp: Warning Variables

 
 37.5.2 Warning Variables
 ------------------------
 
 Programs can customize how their warnings appear by binding the
 variables described in this section.
 
  -- Variable: warning-levels
      This list defines the meaning and severity order of the warning
      severity levels.  Each element defines one severity level, and they
      are arranged in order of decreasing severity.
 
      Each element has the form ‘(LEVEL STRING FUNCTION)’, where LEVEL is
      the severity level it defines.  STRING specifies the textual
      description of this level.  STRING should use ‘%s’ to specify where
      to put the warning type information, or it can omit the ‘%s’ so as
      not to include that information.
 
      The optional FUNCTION, if non-‘nil’, is a function to call with no
      arguments, to get the user’s attention.
 
      Normally you should not change the value of this variable.
 
  -- Variable: warning-prefix-function
      If non-‘nil’, the value is a function to generate prefix text for
      warnings.  Programs can bind the variable to a suitable function.
      ‘display-warning’ calls this function with the warnings buffer
      current, and the function can insert text in it.  That text becomes
      the beginning of the warning message.
 
      The function is called with two arguments, the severity level and
      its entry in ‘warning-levels’.  It should return a list to use as
      the entry (this value need not be an actual member of
      ‘warning-levels’).  By constructing this value, the function can
      change the severity of the warning, or specify different handling
      for a given severity level.
 
      If the variable’s value is ‘nil’ then there is no function to call.
 
  -- Variable: warning-series
      Programs can bind this variable to ‘t’ to say that the next warning
      should begin a series.  When several warnings form a series, that
      means to leave point on the first warning of the series, rather
      than keep moving it for each warning so that it appears on the last
      one.  The series ends when the local binding is unbound and
      ‘warning-series’ becomes ‘nil’ again.
 
      The value can also be a symbol with a function definition.  That is
      equivalent to ‘t’, except that the next warning will also call the
      function with no arguments with the warnings buffer current.  The
      function can insert text which will serve as a header for the
      series of warnings.
 
      Once a series has begun, the value is a marker which points to the
      buffer position in the warnings buffer of the start of the series.
 
      The variable’s normal value is ‘nil’, which means to handle each
      warning separately.
 
  -- Variable: warning-fill-prefix
      When this variable is non-‘nil’, it specifies a fill prefix to use
      for filling each warning’s text.
 
  -- Variable: warning-type-format
      This variable specifies the format for displaying the warning type
      in the warning message.  The result of formatting the type this way
      gets included in the message under the control of the string in the
      entry in ‘warning-levels’.  The default value is ‘" (%s)"’.  If you
      bind it to ‘""’ then the warning type won’t appear at all.