emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Initial fontification in sh-mode with tree-sittter


From: Yuan Fu
Subject: Re: Initial fontification in sh-mode with tree-sittter
Date: Mon, 31 Oct 2022 17:25:01 -0700


> On Oct 31, 2022, at 5:09 PM, Daniel Martín <mardani29@yahoo.es> wrote:
> 
> Yuan Fu <casouri@gmail.com> writes:
> 
>> 
>> I think I’ve fixed this problem. It is mainly due to how the
>> fortifications rule is written. When the starting quotes are inserted,
>> normal syntactic font-lock will mark everything behind it in
>> string-face, but for tree-sitter, since the source is incomplete, the
>> quotes are in an error node in the parse tree and there is no string
>> node, so tree-sitter rules can’t capture any string node, so no string
>> face is applied. And when the ending quotes are inserted, the only
>> region jit-lock wants tree-sitter to fontify is that three quote, so
>> again the whole string is not captured. I changed the font-lock rule
>> to match the ending quote rather than the whole string, and now it’s
>> working fine.
>> 
>> Now it is actually better than before: If you insert an open quote,
>> the rest of the buffer will not be marked in string face, instead, and
>> when you insert the ending quote, the string is fontified correctly.
>> 
> 
> I can still reproduce the problem, with same reproduction steps that I
> mentioned before.
> 
> Curiously, as soon as I press C-l, the text gets fontified with the
> string face.

I think that’s just jit-lock & redisplay doing funny stuff. If you set 
treesit--font-lock-verbose to t, it should log that appropriate faces are 
applied when you insert the quote.

Yuan


reply via email to

[Prev in Thread] Current Thread [Next in Thread]