emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Major modes using `widen' is a good, even essential, programming pra


From: Eli Zaretskii
Subject: Re: Major modes using `widen' is a good, even essential, programming practice.
Date: Sun, 07 Aug 2022 18:13:47 +0300

> Date: Sun, 7 Aug 2022 14:59:06 +0000
> Cc: gregory@heytings.org, emacs-devel@gnu.org
> From: Alan Mackenzie <acm@muc.de>
> 
> > jit-lock calls the functions with two arguments, BEG and END, and
> > expects them to work only on that chunk of text.
> 
> I don't think you really mean that.

No, I really do.

> Consider the second jit-lock chunk
> at the beginning of xdisp.c.  Fontifying that chunk involves looking
> back 1500 characters before BEG to see that it needs
> font-lock-comment-face.  You might argue that that information will be
> in a cache anyway, but that's not dependable.

Either in the cache or in the buffer: the previous chunk was
fontified, so its end has the font-lock-comment-face.  So you know.

> Also, the (BEG END) region will typically get rounded up to whole lines,
> again "violating" that chunk.

That's a far cry from going to BOB.  And if you ask nicely, we could
arrange that jit-lock calls you only on line boundaries (unless lines
are longer than some reasonable value).

> In principle, font-lock needs to look outside of (BEG END).

No, it doesn't.  A string cannot begin before a beginning of a
function, for example.  And if you need to go too far, just give up
and blame the user who writes such code.  It is much better than
letting every use of CC Mode wait because once in a blue moon someone
could have a very long string.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]