@@ -0,0 +1,55 @@
1+(string) @string
2+(type) @type
3+(value_path) @variable
4+(comment) @comment
5+
6+(number_literal) @constant.numeric
7+(range from: (number_literal) @constant.numeric)
8+(range to: (number_literal) @constant.numeric)
9+
10+(command cmd_name: (identifier) @function)
11+(function_definition func_name: (identifier) @function)
12+
13+[
14+ (variable_declaration name: (identifier))
15+ (parameter (identifier))
16+ (flag (flag_name))
17+ (flag (flag_shorthand_name))
18+ (record_entry entry_name: (identifier))
19+ (block_args block_param: (identifier))
20+] @variable.other.member
21+; (parameter (identifier) @variable.parameter) ; -- alternative highlighting group?
22+
23+(cmd_invocation) @embedded
24+
25+
26+((identifier) @constant
27+ (#match? @constant "^[A-Z][A-Z\\d_]*$"))
28+
29+[
30+ "if"
31+ "else"
32+ "let"
33+ "def"
34+ "export"
35+] @keyword
36+
37+[
38+ ; "/" Not making / an operator may lead to better highlighting?
39+ "$"
40+ "|"
41+ "+"
42+ "-"
43+ "*"
44+ "="
45+ "!="
46+ "&&"
47+ "||"
48+ "=="
49+ ">"
50+] @operator
51+
52+["."
53+ ","
54+ ";"
55+] @punctuation.delimiter