Subject: Re: bug#56682: Fix the long lines font locking related slowdowns

From: Stefan Monnier <[email-masked]>
Date: Mon, 15 Aug 2022 16:25:37 -0400

Dmitry Gutov [2022-08-15 22:54:30] wrote:
> On 15.08.2022 22:25, Gregory Heytings wrote:
>>> I've never seen fontification-functions contain anything but
>>> jit-lock-function,
>>>
>> You did not read the thread carefully enough: two weeks ago it was
>> mentioned that fontification-functions has at least two other users: in
>> ELPA multi-mode.el sets fontification-functions to multi-fontify, and in
>> MELPA poly-lock.el sets fontification-functions to poly-lock-function.
>
> Okay.  But those should be easily adapted to use jit-lock-functions instead.

IIUC they use `fontification-functions` to wrap the "select the current
major mode" operation around the call to `jit-lock-function` so that
each submode can use its own set of jit-lock clients.

It's harder to hook into `jit-lock-functions` to do that because you
need to detect when `jit-lock-functions` is modified.

AFAICT mmm-mode does not try to do that at all.

> They'll get all the corresponding performance improvements (just-in-time
> fontification) as a bonus.

Not sure what you mean by that.  `fontification-functions` is already
called "just-in-time" (and those packages don't re-implement jit-lock on
their own, they just wrap themselves around jit-lock).

        Stefan