elisp: Levels of Font Lock

 
 22.6.5 Levels of Font Lock
 --------------------------
 
 Some major modes offer three different levels of fontification.  You can
 define multiple levels by using a list of symbols for KEYWORDS in
 ‘font-lock-defaults’.  Each symbol specifies one level of fontification;
 it is up to the user to choose one of these levels, normally by setting
 ‘font-lock-maximum-decoration’ (See(emacs)Font Lock).  The chosen
 level’s symbol value is used to initialize ‘font-lock-keywords’.
 
    Here are the conventions for how to define the levels of
 fontification:
 
    • Level 1: highlight function declarations, file directives (such as
      include or import directives), strings and comments.  The idea is
      speed, so only the most important and top-level components are
      fontified.
 
    • Level 2: in addition to level 1, highlight all language keywords,
      including type names that act like keywords, as well as named
      constant values.  The idea is that all keywords (either syntactic
      or semantic) should be fontified appropriately.
 
    • Level 3: in addition to level 2, highlight the symbols being
      defined in function and variable declarations, and all builtin
      function names, wherever they appear.