@@ -1,181 +1,100 @@
1−; Variables
2−(variable_declaration
3− .
4− (scope) @keyword)
51[
6−(single_var_declaration)
7−(scalar_variable)
8−(array_variable)
9−(hash_variable)
10−(hash_variable)
11−] @variable
12−
2+ "use" "no" "require" "package"
3+] @keyword.control.import
134
145[
15−(package_name)
16−(special_scalar_variable)
17−(special_array_variable)
18−(special_hash_variable)
19−(special_literal)
20−(super)
21−] @constant
22−
23−(
24− [
25− (package_name)
26− (super)
27− ]
28− .
29− ("::" @operator)
30−)
31−
32−(comments) @comment
33−(pod_statement) @comment.block.documentation
6+ "sub"
7+] @keyword.function
348
359[
36−(use_no_statement)
37−(use_no_feature_statement)
38−(use_no_if_statement)
39−(use_no_version)
40−(use_constant_statement)
41−(use_parent_statement)
42−] @keyword
43−
44−(use_constant_statement
45− constant: (identifier) @constant)
10+ "if" "elsif" "else" "unless"
11+] @keyword.control.conditional
4612
4713[
48−"require"
49−] @keyword
50−
51−(method_invocation
52− .
53− (identifier) @variable)
54−
55−(method_invocation
56− (arrow_operator)
57− .
58− (identifier) @function)
59−(method_invocation
60− function_name: (identifier) @function)
61−(named_block_statement
62− function_name: (identifier) @function)
63−
64−(call_expression
65− function_name: (identifier) @function)
66−(function_definition
67− name: (identifier) @function)
68−[
69−(function)
70−(map)
71−(grep)
72−(bless)
73−] @function
14+ "while" "until"
15+ "for" "foreach"
16+ "do"
17+] @keyword.control.repeat
7418
7519[
76−"return"
77−"sub"
78−"package"
79−"BEGIN"
80−"END"
81−] @keyword.function
20+ "my" "our" "local"
21+] @keyword.storage.modifier
8222
8323[
84−"("
85−")"
86−"["
87−"]"
88−"{"
89−"}"
90−] @punctuation.bracket
91−(standard_input_to_variable) @punctuation.bracket
24+ "last" "next" "redo" "goto" "return"
25+] @keyword.control.return
9226
9327[
94−"=~"
95−"or"
96−"="
97−"=="
98−"+"
99−"-"
100−"."
101−"//"
102−"||"
103−(arrow_operator)
104−(hash_arrow_operator)
105−(array_dereference)
106−(hash_dereference)
107−(to_reference)
108−(type_glob)
109−(hash_access_variable)
110−(ternary_expression)
111−(ternary_expression_in_hash)
112−] @operator
28+ "undef"
29+] @constant.builtin
11330
114−[
115−(regex_option)
116−(regex_option_for_substitution)
117−(regex_option_for_transliteration)
118−] @variable.parameter
119−
120−(type_glob
121− (identifier) @variable)
122−(
123− (scalar_variable)
124− .
125− ("->" @operator))
31+(phaser_statement phase: _ @keyword.directive)
12632
12733[
128−(word_list_qw)
129−(command_qx_quoted)
130−(string_single_quoted)
131−(string_double_quoted)
132−(string_qq_quoted)
133−(bareword)
134−(transliteration_tr_or_y)
135−] @string
34+ "or" "and"
35+ "eq" "ne" "cmp" "lt" "le" "ge" "gt"
36+ "isa"
37+] @keyword.operator
13638
137−[
138−(regex_pattern_qr)
139−(patter_matcher_m)
140−(substitution_pattern_s)
141−] @string.regexp
39+(comment) @comment
14240
143−(escape_sequence) @string.special
41+(eof_marker) @keyword.directive
42+(data_section) @comment
14443
145−[
146−","
147−(semi_colon)
148−(start_delimiter)
149−(end_delimiter)
150−(ellipsis_statement)
151−] @punctuation.delimiter
44+(pod) @comment.block.documentation
15245
153−[
154−(integer)
155−(floating_point)
156−(scientific_notation)
157−(hexadecimal)
158−] @constant.numeric
46+(number) @constant.numeric
47+(version) @constant
15948
160−[
161−; (if_statement)
162−(unless_statement)
163−(if_simple_statement)
164−(unless_simple_statement)
165−] @keyword.control.conditional
49+(string_literal) @string
50+(interpolated_string_literal) @string
51+(quoted_word_list) @string
52+(command_string) @string
53+[(heredoc_token) (command_heredoc_token)] @string.special
54+(heredoc_content) @string
55+(heredoc_end) @string.special
56+[(escape_sequence) (escaped_delimiter)] @constant.character.escape
16657
167−[
168−"if"
169−"elsif"
170−"else"
171−] @keyword.control.conditional
58+[(quoted_regexp) (match_regexp)] @string.regexp
59+
60+(autoquoted_bareword _?) @string.special
61+
62+[(scalar) (arraylen)] @variable
63+(scalar_deref_expression ["->" "$" "*"] @variable)
64+(array) @variable
65+(array_deref_expression ["->" "@" "*"] @variable)
66+(hash) @variable
67+(hash_deref_expression ["->" "%" "*"] @variable)
68+
69+(array_element_expression [array:(_) "->" "[" "]"] @variable)
70+(slice_expression [array:(_) "->" "[" "]"] @variable)
71+(keyval_expression [array:(_) "->" "[" "]"] @variable)
72+
73+(hash_element_expression [hash:(_) "->" "{" "}"] @variable)
74+(slice_expression [hash:(_) "->" "[" "]"] @variable)
75+(keyval_expression [hash:(_) "->" "[" "]"] @variable)
76+
77+(hash_element_expression key: (bareword) @string.special)
78+
79+(use_statement (package) @type)
80+(package_statement (package) @type)
81+(require_expression (bareword) @type)
82+
83+(subroutine_declaration_statement name: (_) @function)
84+(attrlist (attribute) @attribute)
85+
86+(goto_expression (label) @label)
87+(loopex_expression (label) @label)
88+
89+(statement_label label: _ @label)
17290
173−(foreach_statement) @keyword.control.repeat
174−(foreach_statement
175− .
176− (scope) @keyword)
91+(relational_expression operator: "isa" right: (bareword) @type)
17792
178−(function_attribute) @label
93+(function_call_expression (function) @function)
94+(method_call_expression (method) @function.method)
95+(method_call_expression invocant: (bareword) @type)
17996
180−(function_signature) @type
97+(func0op_call_expression function: _ @function.builtin)
98+(func1op_call_expression function: _ @function.builtin)
18199
100+(function) @function