@@ -9,25 +9,23 @@
9 (member_access_expression
9 (member_access_expression
10 name: (identifier) @function))
10 name: (identifier) @function))
12−(invocation_expression
13− (member_access_expression
14− expression: (identifier) @variable))
16(invocation_expression
12(invocation_expression
17 function: (conditional_access_expression
13 function: (conditional_access_expression
18 (member_binding_expression
14 (member_binding_expression
19 name: (identifier) @function)))
15 name: (identifier) @function)))
21(invocation_expression
17(invocation_expression
22− [(identifier) (qualified_name)] @function)
18+ [(identifier) (qualified_name)] @function)
20+(local_function_statement
21+ name: (identifier) @function)
24; Generic Method invocation with generic type
23; Generic Method invocation with generic type
25(invocation_expression
24(invocation_expression
26 function: (generic_name
25 function: (generic_name
27− . (identifier) @function))
26+ . (identifier) @function))
29;; Namespaces
28;; Namespaces
31(namespace_declaration
29(namespace_declaration
32 name: [(identifier) (qualified_name)] @namespace)
30 name: [(identifier) (qualified_name)] @namespace)
@@ -40,8 +38,11 @@
40(namespace_declaration name: (identifier) @type)
38(namespace_declaration name: (identifier) @type)
41(using_directive (_) @namespace)
39(using_directive (_) @namespace)
42(constructor_declaration name: (identifier) @type)
40(constructor_declaration name: (identifier) @type)
41+(destructor_declaration name: (identifier) @type)
43(object_creation_expression [(identifier) (qualified_name)] @type)
42(object_creation_expression [(identifier) (qualified_name)] @type)
44(type_parameter_list (type_parameter) @type)
43(type_parameter_list (type_parameter) @type)
44+(array_type (identifier) @type)
45+(for_each_statement type: (identifier) @type)
47 (implicit_type)
48 (implicit_type)
@@ -66,7 +67,7 @@
67(object_creation_expression
68(object_creation_expression
68 (generic_name
69 (generic_name
69− (identifier) @type))
70+ (identifier) @type))
71(property_declaration
72(property_declaration
72 (generic_name
73 (generic_name
@@ -74,7 +75,7 @@
76 type: (generic_name
77 type: (generic_name
77− (identifier) @type))
78+ (identifier) @type))
80(enum_member_declaration (identifier) @variable.other.member)
81(enum_member_declaration (identifier) @variable.other.member)
@@ -91,6 +92,7 @@
91 (verbatim_string_literal)
92 (verbatim_string_literal)
92 (interpolated_string_text)
93 (interpolated_string_text)
93 (interpolated_verbatim_string_text)
94 (interpolated_verbatim_string_text)
95+ (interpolation_format_clause)
@@ -150,6 +152,7 @@
@@ -166,50 +169,27 @@
166] @punctuation.bracket
169] @punctuation.bracket
168;; Keywords
171;; Keywords
169−(modifier) @keyword
172+(modifier) @keyword.storage.modifier
170(this_expression) @keyword
173(this_expression) @keyword
171(escape_sequence) @constant.character.escape
174(escape_sequence) @constant.character.escape
179 "checked"
180 "checked"
189 "finally"
181 "finally"
199 "operator"
184 "operator"
203 "stackalloc"
187 "stackalloc"
210 "unchecked"
191 "unchecked"
@@ -222,25 +202,63 @@
229] @keyword
208] @keyword
219+] @keyword.storage.type
225+] @keyword.storage.modifier
234+] @keyword.control.repeat
243+] @keyword.control.conditional
245+"return" @keyword.control.return
231−(nullable_directive) @keyword.directive
248+ (nullable_directive)
232−(define_directive) @keyword.directive
249+ (define_directive)
233−(undef_directive) @keyword.directive
250+ (undef_directive)
234−(if_directive) @keyword.directive
251+ (if_directive)
235−(else_directive) @keyword.directive
252+ (else_directive)
236−(elif_directive) @keyword.directive
253+ (elif_directive)
237−(endif_directive) @keyword.directive
254+ (endif_directive)
238−(region_directive) @keyword.directive
255+ (region_directive)
239−(endregion_directive) @keyword.directive
256+ (endregion_directive)
240−(error_directive) @keyword.directive
257+ (error_directive)
241−(warning_directive) @keyword.directive
258+ (warning_directive)
242−(line_directive) @keyword.directive
259+ (line_directive)
243−(pragma_directive) @keyword.directive
260+ (pragma_directive)
246(from_clause (identifier) @variable)
264(from_clause (identifier) @variable)
@@ -259,10 +277,16 @@
259(binary_expression [(identifier) (qualified_name)] @variable [(identifier) (qualified_name)] @variable)
277(binary_expression [(identifier) (qualified_name)] @variable [(identifier) (qualified_name)] @variable)
260(binary_expression [(identifier) (qualified_name)]* @variable)
278(binary_expression [(identifier) (qualified_name)]* @variable)
261(conditional_expression [(identifier) (qualified_name)] @variable)
279(conditional_expression [(identifier) (qualified_name)] @variable)
280+(conditional_access_expression [(identifier) (qualified_name)] @variable)
262(prefix_unary_expression [(identifier) (qualified_name)] @variable)
281(prefix_unary_expression [(identifier) (qualified_name)] @variable)
263(postfix_unary_expression [(identifier) (qualified_name)]* @variable)
282(postfix_unary_expression [(identifier) (qualified_name)]* @variable)
264(assignment_expression [(identifier) (qualified_name)] @variable)
283(assignment_expression [(identifier) (qualified_name)] @variable)
265(cast_expression [(identifier) (qualified_name)] @type [(identifier) (qualified_name)] @variable)
284(cast_expression [(identifier) (qualified_name)] @type [(identifier) (qualified_name)] @variable)
285+(element_access_expression (identifier) @variable)
286+(member_access_expression
287+ expression: ([(identifier) (qualified_name)] @type
288+ (#match? @type "^[A-Z]")))
289+(member_access_expression [(identifier) (qualified_name)] @variable)
268(base_list (identifier) @type)
292(base_list (identifier) @type)
@@ -278,7 +302,6 @@
278 name: (identifier) @variable)
302 name: (identifier) @variable)
280;; Delegate
304;; Delegate
282(delegate_declaration (identifier) @type)
305(delegate_declaration (identifier) @type)
@@ -296,11 +319,11 @@
297(parameter_list
320(parameter_list
298 (parameter
321 (parameter
299− name: (identifier) @parameter))
322+ name: (identifier) @parameter))
301(parameter_list
324(parameter_list
302 (parameter
325 (parameter
303− type: [(identifier) (qualified_name)] @type))
326+ type: [(identifier) (qualified_name)] @type))
306(type_of_expression [(identifier) (qualified_name)] @type)
329(type_of_expression [(identifier) (qualified_name)] @type)
@@ -315,7 +338,7 @@
317(generic_name (identifier) @type)
340(generic_name (identifier) @type)
318−(type_parameter [(identifier) (qualified_name)] @variable.parameter)
341+(type_parameter [(identifier) (qualified_name)] @type)
319(type_argument_list [(identifier) (qualified_name)] @type)
342(type_argument_list [(identifier) (qualified_name)] @type)
321;; Type constraints
344;; Type constraints
@@ -333,15 +356,21 @@
333;; Lock statement
356;; Lock statement
334(lock_statement (identifier) @variable)
357(lock_statement (identifier) @variable)
359+;; Declaration expression
360+(declaration_expression
361+ type: (identifier) @type
362+ name: (identifier) @variable)
337−(member_access_expression) @variable
338−(element_access_expression (identifier) @variable)
339(argument (identifier) @variable)
365(argument (identifier) @variable)
366+(name_colon (identifier) @variable)
367+(if_statement (identifier) @variable)
340(for_statement (identifier) @variable)
368(for_statement (identifier) @variable)
341(for_each_statement (identifier) @variable)
369(for_each_statement (identifier) @variable)
342(expression_statement (identifier) @variable)
370(expression_statement (identifier) @variable)
343−(member_access_expression expression: (identifier) @variable)
371+(array_rank_specifier (identifier) @variable)
344−(member_access_expression name: (identifier) @variable)
372+(equals_value_clause (identifier) @variable)
345−(conditional_access_expression [(identifier) (qualified_name)] @variable)
373+(interpolation (identifier) @variable)
374+(cast_expression (identifier) @variable)
346((identifier) @comment.unused
375((identifier) @comment.unused
347− (#eq? @comment.unused "_"))
376+ (#eq? @comment.unused "_"))