elisp: Auto Faces

 
 37.12.7 Automatic Face Assignment
 ---------------------------------
 
 This hook is used for automatically assigning faces to text in the
 buffer.  It is part of the implementation of Jit-Lock mode, used by
 Font-Lock.
 
  -- Variable: fontification-functions
      This variable holds a list of functions that are called by Emacs
      redisplay as needed, just before doing redisplay.  They are called
      even when Font Lock Mode isn’t enabled.  When Font Lock Mode is
      enabled, this variable usually holds just one function,
      ‘jit-lock-function’.
 
      The functions are called in the order listed, with one argument, a
      buffer position POS.  Collectively they should attempt to assign
      faces to the text in the current buffer starting at POS.
 
      The functions should record the faces they assign by setting the
      ‘face’ property.  They should also add a non-‘nil’ ‘fontified’
      property to all the text they have assigned faces to.  That
      property tells redisplay that faces have been assigned to that text
      already.
 
      It is probably a good idea for the functions to do nothing if the
      character after POS already has a non-‘nil’ ‘fontified’ property,
      but this is not required.  If one function overrides the
      assignments made by a previous one, the properties after the last
      function finishes are the ones that really matter.
 
      For efficiency, we recommend writing these functions so that they
      usually assign faces to around 400 to 600 characters at each call.