Subject: bug#59455: 29.0.50; Treesit font lock changes unrelated code

From: Theodor Thornhill <[email-masked]>
Date: Tue, 22 Nov 2022 12:03:48 +0100

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?