Subject: bug#59455: closed (Re: bug#59455: 29.0.50; Treesit font lock changes unrelated code)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 23 Nov 2022 18:34:02 +0000

Your bug report

#59455: 29.0.50; Treesit font lock changes unrelated code

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
59455: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59455
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#59455: 29.0.50; Treesit font lock changes unrelated code
From: Yuan Fu <[email-masked]>
To: Theodor Thornhill <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Wed, 23 Nov 2022 10:33:35 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Theodor Thornhill <[email-masked]> writes:

> On 22 November 2022 11:05:50 CET, Yuan Fu <[email-masked]> wrote:
>>
>>Theodor Thornhill <[email-masked]> writes:
>>
>>> Hi Yuan!
>>>
>>> I've noticed some strange behavior with font-lock lately in c-ts-mode,
>>> and also in all the other ts modes.
>>>
>>> to reproduce:
>>>
>>> emacs -Q
>>>
>>> C-x C-f foo.c RET
>>>
>>> Insert this:
>>>
>>> ```
>>> /* lol lol lol lol lol lol lol lol lol lol */
>>> /* lol lol lol lol lol lol lol lol lol lol */
>>> /* lol lol lol lol lol lol lol lol lol lol */
>>> /* lol lol lol lol lol lol lol lol lol lol */
>>> /* lol lol lol lol lol lol lol lol lol lol */
>>> /* lol lol lol lol lol lol lol lol lol lol */
>>> /* lol lol lol lol lol lol lol lol lol lol */
>>> /* lol lol lol lol lol lol lol lol lol lol */
>>> /* lol lol lol lol lol lol lol lol lol lol */
>>>
>>> int
>>> foo (void)
>>> {
>>>   return 5;
>>> }
>>>
>>> int
>>> foo (void)
>>> {
>>>   if (x)
>>>     {
>>>       return 5;
>>>     }
>>> }
>>>
>>> int
>>> foo (void)
>>> {
>>>   return 5;
>>> }
>>> ```
>>>
>>> M-x c-ts-mode RET
>>>
>>> Now on the first line, repeatedly press 'M-c' (capitalize-word) and
>>> watch the highlights of the rest of the file jump around.  Then try
>>> undoing the changes by repeatedly pressing 'C-/' until you are back at
>>> the state right after the first insert.  Now highlights are messed up.
>>>
>>> I'm not sure where to start looking for this, but I do remember there
>>> being some issues in Eglot with these "multi-edit" commands.
>>>
>>> If you have some pointers for where to look I can dig around :)
>>
>>Thanks for the catch! It is due to tree-sitter not correctly recording
>>changes in casefiddle.c. I’ve fixed it now. 
>
>
>> Now you can Lol as much as your heart desire.
>
> Don't you always capitalize lols at the top of your files? 

I should do it more, heard that it’s a good warm-up for programming :-)
Closing.

Yuan

Subject: 29.0.50; Treesit font lock changes unrelated code
From: Theodor Thornhill <[email-masked]>
To: [email-masked]
Date: Mon, 21 Nov 2022 21:12:51 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Yuan!

I've noticed some strange behavior with font-lock lately in c-ts-mode,
and also in all the other ts modes.

to reproduce:

emacs -Q

C-x C-f foo.c RET

Insert this:

```
/* lol lol lol lol lol lol lol lol lol lol */
/* lol lol lol lol lol lol lol lol lol lol */
/* lol lol lol lol lol lol lol lol lol lol */
/* lol lol lol lol lol lol lol lol lol lol */
/* lol lol lol lol lol lol lol lol lol lol */
/* lol lol lol lol lol lol lol lol lol lol */
/* lol lol lol lol lol lol lol lol lol lol */
/* lol lol lol lol lol lol lol lol lol lol */
/* lol lol lol lol lol lol lol lol lol lol */

int
foo (void)
{
  return 5;
}

int
foo (void)
{
  if (x)
    {
      return 5;
    }
}

int
foo (void)
{
  return 5;
}
```

M-x c-ts-mode RET

Now on the first line, repeatedly press 'M-c' (capitalize-word) and
watch the highlights of the rest of the file jump around.  Then try
undoing the changes by repeatedly pressing 'C-/' until you are back at
the state right after the first insert.  Now highlights are messed up.

I'm not sure where to start looking for this, but I do remember there
being some issues in Eglot with these "multi-edit" commands.

If you have some pointers for where to look I can dig around :)

Theo