elisp: Syntactic Font Lock

 
 22.6.8 Syntactic Font Lock
 --------------------------
 
 Syntactic fontification uses a syntax table (SeeSyntax Tables) to
 find and highlight syntactically relevant text.  If enabled, it runs
 prior to search-based fontification.  The variable
 ‘font-lock-syntactic-face-function’, documented below, determines which
 syntactic constructs to highlight.  There are several variables that
 affect syntactic fontification; you should set them by means of
 ‘font-lock-defaults’ (SeeFont Lock Basics).
 
    Whenever Font Lock mode performs syntactic fontification on a stretch
 of text, it first calls the function specified by
 ‘syntax-propertize-function’.  Major modes can use this to apply
 ‘syntax-table’ text properties to override the buffer’s syntax table in
 special cases.  SeeSyntax Properties.
 
  -- Variable: font-lock-keywords-only
      If the value of this variable is non-‘nil’, Font Lock does not do
      syntactic fontification, only search-based fontification based on
      ‘font-lock-keywords’.  It is normally set by Font Lock mode based
      on the KEYWORDS-ONLY element in ‘font-lock-defaults’.
 
  -- Variable: font-lock-syntax-table
      This variable holds the syntax table to use for fontification of
      comments and strings.  It is normally set by Font Lock mode based
      on the SYNTAX-ALIST element in ‘font-lock-defaults’.  If this value
      is ‘nil’, syntactic fontification uses the buffer’s syntax table
      (the value returned by the function ‘syntax-table’; SeeSyntax
      Table Functions).
 
  -- Variable: font-lock-syntactic-face-function
      If this variable is non-‘nil’, it should be a function to determine
      which face to use for a given syntactic element (a string or a
      comment).  The value is normally set through an OTHER-VARS element
      in ‘font-lock-defaults’.
 
      The function is called with one argument, the parse state at point
      returned by ‘parse-partial-sexp’, and should return a face.  The
      default value returns ‘font-lock-comment-face’ for comments and
      ‘font-lock-string-face’ for strings (SeeFaces for Font Lock).