Subject: Re: bug#64922: treesit-query-error due to a recent change to tree-sitter-cmake grammar definition

From: Theodor Thornhill <[email-masked]>
Date: Sat, 29 Jul 2023 11:13:10 +0200

On 29 July 2023 09:51:19 CEST, Eli Zaretskii <[email-masked]> wrote:
>> From: Vincenzo Pupillo <[email-masked]>
>> Date: Fri, 28 Jul 2023 22:59:27 +0200
>> 
>> Hi, a recent commit (commit fe9b5e022950d53cb23959b76c240e1da27ff0a5) changed 
>> the definition of the cmake grammar, now there is a new node argument_list used 
>> to wrap nodes of type argument. 
>> This causes the following error:
>> Error during redisplay: (jit-lock-function 1) signaled (treesit-query-error 
>> "Structure error at" 19 "((foreach_command ((argument) @font-lock-constant-
>> face (#match \"\\\\(?:^\\\\(?:I\\\\(?:N\\\\|TEMS\\\\)\\\\|LISTS\\\\|RANGE\\\\|
>> ZIP_LISTS\\\\)$\\\\)\" @font-lock-constant-face)))) ((if_command ((argument) 
>> @font-lock-constant-face (#match \"\\\\(?:^\\\\(?:AND\\\\|COMMAND\\\\|DEFINED\
>> \\\|E\\\\(?:QUAL\\\\|XISTS\\\\)\\\\|GREATER\\\\(?:_EQUAL\\\\)?\\\\|LESS\\\\
>> (?:_EQUAL\\\\)?\\\\|MATCHES\\\\|NOT\\\\|OR\\\\|PATH_EQUAL\\\\|STR\\\\(?:EQUAL\
>> \\\|GREATER\\\\(?:_EQUAL\\\\)?\\\\|LESS\\\\(?:_EQUAL\\\\)?\\\\)\\\\|VERSION_\\
>> \\(?:EQUAL\\\\|GREATER\\\\(?:_EQUAL\\\\)?\\\\|LESS\\\\(?:_EQUAL\\\\)?\\\\)\\\
>> \)$\\\\)\" @font-lock-constant-face))))" "Debug the query with `treesit-query-
>> validate'")
>> 
>> The attached patch supports both the old and the new grammar.
>
>Thanks.
>
>Theo, yuan: any comments to the patch?  If okay, I'd like to install
>this on the release branch ASAP.

I'm not able to look at it until tonight, which is in 8-9 hours. If that's not asap enough, I trust your judgement more than mine anyways ;-)

If that's not too late I'll take a look then and install if ok.

Theo