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

From: Eli Zaretskii <[email-masked]>
Date: Sat, 29 Jul 2023 10:51:19 +0300

> 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.