GNU bug report logs - #71384
treesit-font-lock-fontify-region unnecessarily re-unfontify's

Previous Next

Package: emacs;

Reported by: JD Smith <jdtsmith <at> gmail.com>

Date: Wed, 5 Jun 2024 22:56:01 UTC

Severity: normal

To reply to this bug, email your comments to 71384 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#71384; Package emacs. (Wed, 05 Jun 2024 22:56:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to JD Smith <jdtsmith <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 05 Jun 2024 22:56:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: JD Smith <jdtsmith <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: treesit-font-lock-fontify-region unnecessarily re-unfontify's
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.

(defun treesit-font-lock-fontify-region (start end &optional loudly)
  "Fontify the region between START and END.
If LOUDLY is non-nil, display some debugging information."
  (when (or loudly treesit--font-lock-verbose)
    (message "Fontifying region: %s-%s" start end))
  (treesit-update-ranges start end)
  (font-lock-unfontify-region start end)



Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#71384; Package emacs. (Thu, 06 Jun 2024 05:41:02 GMT) Full text and rfc822 format available.

Message #8 received at 71384 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: JD Smith <jdtsmith <at> gmail.com>, Yuan Fu <casouri <at> gmail.com>
Cc: 71384 <at> debbugs.gnu.org
Subject: Re: bug#71384: treesit-font-lock-fontify-region unnecessarily
 re-unfontify's
Date: Thu, 06 Jun 2024 08:34:13 +0300
> From: JD Smith <jdtsmith <at> gmail.com>
> 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?  We don't say that
treesit-font-lock-fontify-region _must_ be called _only_ from
font-lock-default-fontify-region, do we?

Adding Yuan in case he has comments.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#71384; Package emacs. (Thu, 06 Jun 2024 11:37:02 GMT) Full text and rfc822 format available.

Message #11 received at 71384 <at> debbugs.gnu.org (full text, mbox):

From: JD Smith <jdtsmith <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Yuan Fu <casouri <at> gmail.com>, 71384 <at> debbugs.gnu.org
Subject: Re: bug#71384: treesit-font-lock-fontify-region unnecessarily
 re-unfontify's
Date: Thu, 6 Jun 2024 07:35:03 -0400

> On Jun 6, 2024, at 1:34 AM, Eli Zaretskii <eliz <at> gnu.org> wrote:
> 
>> From: JD Smith <jdtsmith <at> gmail.com>
>> 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.





This bug report was last modified 133 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.