Subject: Re: bug#71518: 30.0.50; Errors during redisplay with c++-ts-mode

From: Vincenzo Pupillo <[email-masked]>
Date: Sat, 22 Jun 2024 20:15:39 +0200

In data sabato 22 giugno 2024 19:59:42 CEST, Vincenzo Pupillo ha scritto:
> In data sabato 22 giugno 2024 19:03:43 CEST, Eli Zaretskii ha scritto:
> > > Cc: [email-masked], [email-masked]
> > > Date: Sat, 22 Jun 2024 19:56:34 +0300
> > > From: Eli Zaretskii <[email-masked]>
> > > 
> > > Hmm... I still see an error message in *Messages* after installing
> > > 
> > > this (I have grammar library version 0.22.2):
> > >   Error during redisplay: (jit-lock-function 1) signaled
> > >   (treesit-query-error "Node type error at" 2 "(virtual)
> > >   @font-lock-keyword-face [\"auto\" \"_Atomic\" \"break\" \"case\"
> > >   \"const\" \"continue\" \"default\" \"do\" \"else\" \"enum\" \"extern\"
> > >   \"for\" \"goto\" \"if\" \"inline\" \"register\" \"restrict\"
> > >   \"return\"
> > >   \"sizeof\" \"static\" \"struct\" \"switch\" \"typedef\" \"union\"
> > >   \"volatile\" \"while\"] @font-lock-keyword-face" "Debug the query with
> > >   `treesit-query-validate'")>
> > > 
> > > Any ideas or suggestions?  "virtual" is highlighted, though, so I
> > > guess this is a matter of suppressing the errors or something?
> > 
> > E.g., you can see in go-ts-mode.el how the code probes whether a
> > certain query is supported, and uses it only if it is.
> 
> Sorry, I only tested with .cpp files.
> The rule had to be protected by (when (eq mode 'cpp)...
> 
> Now I have tested this with *.c and *.h as well, with old and new grammar.
> 
> Thanks
> Vincenzo
I forgot to add that I have another patch that tests the grammar, but it 
doesn't seem to help in this case. With both the old and the new grammar, the 
node is identified as (virtual "virtual").

Vincenzo