GNU bug report logs - #75164
treesit-font-lock-fontify-region is easy to lost color on parse error. suggest to remain fontify on parse error.

Previous Next

Package: emacs;

Reported by: Eval Exec <execvy <at> gmail.com>

Date: Sat, 28 Dec 2024 16:26:01 UTC

Severity: minor

Tags: moreinfo

Full log


View this message in rfc822 format

From: Stefan Kangas <stefankangas <at> gmail.com>
To: Yuan Fu <casouri <at> gmail.com>
Cc: Charalampos Mitrodimas <charmitro <at> posteo.net>, Eval Exec <execvy <at> gmail.com>, 75164 <at> debbugs.gnu.org
Subject: bug#75164: treesit-font-lock-fontify-region is easy to lost color on parse error. suggest to remain fontify on parse error.
Date: Sun, 2 Mar 2025 04:20:55 +0000
Yuan Fu <casouri <at> gmail.com> writes:

>> On Dec 29, 2024, at 4:28 PM, Charalampos Mitrodimas <charmitro <at> posteo.net> wrote:
>>
>> Hi,
>>
>> Eval Exec <execvy <at> gmail.com> writes:
>>
>>> Hello.
>>> When I enable rust-ts-mode on a rust file, I found treesitter is easy
>>> to make emacs buffer to lost color.
>>> For example, on the following rust code:
>>> ```rust
>>>
>>> struct Dog {
>>>    name: String,
>>>    age: u8,
>>> }
>>>
>>>
>>> struct ManyStruct {
>>>    a: u8,
>>> }
>>>
>>> fn many_code(){
>>>    fn fib(n: u32) -> u32 {
>>>        if n == 0 {
>>>            return 0;
>>>        }
>>>        if n == 1 {
>>>            return 1;
>>>        }
>>>        fib(n - 1) + fib(n - 2)
>>>    }
>>> }
>>>
>>> fn main() {
>>>    // change below `//` to `/` to see the difference
>>>    // {
>>> }
>>> ```
>>>
>>> the rust code is right, and the emacs buffer color is right on every
>>> struct/functions.
>>> But, if I change `// {` to `/ {`, then the rust code is wrong, this
>>> buffer will lost all colors.
>>
>> Thanks for reporting this.
>>
>> I attempted to reproduce this, using your example, when I change `// {`
>> to `/{` only "main" from `fn main()` loses color. The rest of the syntax
>> highlighting remains intact in my setup.
>
> It’s indeed strange to see the whole buffer lost fontification. I don’t see it either.

Eval Exec, are there any steps missing in the recipe to reproduce this?

Can you reproduce it starting from emacs -Q?




This bug report was last modified 202 days ago.

Previous Next


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