1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-11 09:20:51 +00:00

Document 'jit-lock-bounds'

* doc/lispref/modes.texi (Other Font Lock Variables):
* lisp/jit-lock.el (jit-lock-functions, jit-lock-register):
Document the return value of the fontification functions.
This commit is contained in:
Eli Zaretskii 2021-08-23 23:14:00 +03:00
parent 8f43180f0d
commit a849b56410
2 changed files with 13 additions and 2 deletions

View File

@ -3315,6 +3315,11 @@ This function tells Font Lock mode to run the Lisp function
current buffer. It calls @var{function} before calling the default
fontification functions, and gives it two arguments, @var{start} and
@var{end}, which specify the region to be fontified or refontified.
If @var{function} performs fontifications, it can return a list of the
form @w{@code{(jit-lock-bounds @var{beg} . @var{end})}}, to indicate
the bounds of the region it actually fontified; JIT font-lock will use
this information to optimize subsequent redisplay cycles and regions
of buffer text it will pass to future calls to @var{function}.
The optional argument @var{contextual}, if non-@code{nil}, forces Font
Lock mode to always refontify a syntactically relevant part of the

View File

@ -150,7 +150,10 @@ If 0, then fontification is only deferred while there is input pending."
(defvar jit-lock-functions nil
"Special hook run to do the actual fontification.
The functions are called with two arguments:
the START and END of the region to fontify.")
the START and END of the region to fontify.
Each function can return a list of the form (jit-lock-bounds BEG . END),
to indicate the bounds of the region it actually fontified;
JIT font-lock will use this information to optimize redisplay cycles.")
(defvar-local jit-lock-context-unfontify-pos nil
"Consider text after this position as contextually unfontified.
@ -332,7 +335,10 @@ like `debug-on-error' and Edebug can be used."
"Register FUN as a fontification function to be called in this buffer.
FUN will be called with two arguments START and END indicating the region
that needs to be (re)fontified.
If non-nil, CONTEXTUAL means that a contextual fontification would be useful."
If non-nil, CONTEXTUAL means that a contextual fontification would be useful.
FUN can return a list of the form (jit-lock-bounds BEG . END),
to indicate the bounds of the region it actually fontified; JIT
font-lock will use this information to optimize redisplay cycles."
(add-hook 'jit-lock-functions fun nil t)
(when (and contextual jit-lock-contextually)
(setq-local jit-lock-contextually t))