elisp: Syntactic Font Lock
22.6.8 Syntactic Font Lock
--------------------------
Syntactic fontification uses a syntax table (
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’ (
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.
Syntax 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’;
Syntax
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 (
Faces for Font Lock).