Syntactic fontification uses a syntax table (see Syntax 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 (see Font 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. See Syntax Properties.
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.
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
nil, syntactic fontification uses the buffer’s syntax table
(the value returned by the function
syntax-table; see Syntax Table Functions).
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
The function is called with one argument, the parse state at point
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 (see Faces for Font Lock).