There are several variables that control how Font Lock mode highlights
text. But major modes should not set any of these variables directly.
Instead, it should set font-lock-defaults
as a buffer-local
variable. The value assigned to this variable is used, if and when Font
Lock mode is enabled, to set all the other variables.
(keywords keywords-only case-fold syntax-alist syntax-begin other-vars...)
The first element, keywords, indirectly specifies the value of
font-lock-keywords
. It can be a symbol, a variable whose value
is list to use for font-lock-keywords
. It can also be a list of
several such symbols, one for each possible level of fontification. The
first symbol specifies how to do level 1 fontification, the second
symbol how to do level 2, and so on.
The second element, keywords-only, specifies the value of the
variable font-lock-keywords-only
. If this is non-nil
,
syntactic fontification (of strings and comments) is not performed.
The third element, case-fold, specifies the value of
font-lock-case-fold-search
. If it is non-nil
, Font Lock
mode ignores case when searching as directed by
font-lock-keywords
.
If the fourth element, syntax-alist, is non-nil
, it should be
a list of cons cells of the form (char-or-string
. string)
. These are used to set up a syntax table for
fontification (see section Syntax Table Functions). The resulting syntax
table is stored in font-lock-syntax-table
.
The fifth element, syntax-begin, specifies the value of
font-lock-beginning-of-syntax-function
(see below).
Any further elements other-vars are have form
(variable . value)
. This kind of element means to
make variable buffer-local and then set it to value. This
is used to set other variables that affect fontification.
Go to the first, previous, next, last section, table of contents.