Subject: bug#71384: treesit-font-lock-fontify-region unnecessarily re-unfontify's

From: JD Smith <[email-masked]>
Date: Thu, 6 Jun 2024 07:35:03 -0400

> On Jun 6, 2024, at 1:34 AM, Eli Zaretskii <[email-masked]> wrote:
> 
>> From: JD Smith <[email-masked]>
>> Date: Wed, 5 Jun 2024 18:06:54 -0400
>> 
>> The function treesit-font-lock-fontify-region in treesit.el calls (font-lock-unfontify-region start end) right away (see below).  But this function is called as the value of font-lock-fontify-syntactically-function from font-lock-default-fontify-region, which has just itself made the exact same call to font-lock-unfontify-region. I commented out that superfluous call in treesit-font-lock-fontify-region and noticed no ill effects.
> 
> Why is that duplicate call a problem?  

I don't know if it's ever really a problem, other than the small amount of time spent removing properties that have just been removed.

> We don't say that treesit-font-lock-fontify-region _must_ be called _only_ from
> font-lock-default-fontify-region, do we?

I presume the same logic would apply to font-lock-fontify-keywords-region, but that does not re-run unfontify (and is obviously much older code).   Maybe treesit reuses treesit-font-lock-fontify-region in non-font-lock contexts?  Feel free to close if Yuan concurs.