From 2071318626139f4fdb99418949ec483a6b79cd16 Mon Sep 17 00:00:00 2001 From: George Harker Date: Wed, 5 Nov 2025 14:32:26 -0800 Subject: [PATCH] extend highlight groups Pick up (array_at) (array_star) (expansion_flags) (expansion_modifiers) (simple_variable_name) (glob_pattern) (expansion_style) - and therefore hash in ${#variable} --- runtime/queries/zsh/highlights.scm | 19 ++++++++++++++++++- tests/query/highlights/zsh/test.zsh | 24 ++++++++++++------------ 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/runtime/queries/zsh/highlights.scm b/runtime/queries/zsh/highlights.scm index c30a57e27..f03b3fd07 100644 --- a/runtime/queries/zsh/highlights.scm +++ b/runtime/queries/zsh/highlights.scm @@ -102,7 +102,7 @@ "function" @keyword.function -(special_variable_name) @constant +(special_variable_name) @variable.builtin ; trap -l ((word) @constant.builtin @@ -209,6 +209,23 @@ "``" @punctuation.special +(array_star) @variable.builtin + +(array_at) @variable.builtin + +(expansion_flags) @attribute.builtin + +(expansion_style) @attribute.builtin + +(expansion_pattern + pattern: ("#" @attribute.builtin)) + +(expansion_modifier) @attribute.builtin + +(simple_variable_name) @variable + +(glob_pattern) @string.regexp + (variable_name) @variable ((variable_name) @constant diff --git a/tests/query/highlights/zsh/test.zsh b/tests/query/highlights/zsh/test.zsh index 80d3827e3..b1c4e398f 100644 --- a/tests/query/highlights/zsh/test.zsh +++ b/tests/query/highlights/zsh/test.zsh @@ -248,18 +248,18 @@ cat <<< "string" # Special variables echo $0 $1 $@ $* $# $? #^^^ @function.call @function.builtin @number -# ^^ @punctuation.special @none @constant -# ^ @constant -# ^^ @punctuation.special @none @constant -# ^ @constant -# ^^ @punctuation.special @none @constant -# ^ @constant -# ^^ @punctuation.special @none @constant -# ^ @constant -# ^^ @punctuation.special @none @constant -# ^ @constant -# ^^ @punctuation.special @none @constant -# ^ @constant +# ^^ @punctuation.special @none @variable.builtin +# ^ @variable.builtin +# ^^ @punctuation.special @none @variable.builtin +# ^ @variable.builtin +# ^^ @punctuation.special @none @variable.builtin +# ^ @variable.builtin +# ^^ @punctuation.special @none @variable.builtin +# ^ @variable.builtin +# ^^ @punctuation.special @none @variable.builtin +# ^ @variable.builtin +# ^^ @punctuation.special @none @variable.builtin +# ^ @variable.builtin # NOTE: $$ is not captured by current query/grammar # Conditional operators