on master help sign in
C# highlighting improvements (#1795)
6fdf5d0Philipp Mildenberger
runtime/queries/c-sharp/highlights.scm+112−14
@@ -1,5 +1,35 @@
1;; Methods
1;; Methods
2−(method_declaration (identifier) @type (identifier) @function)
2+(method_declaration
3+ name: (identifier) @function)
4+
5+(method_declaration
6+ type: [(identifier) (qualified_name)] @type)
7+
8+(invocation_expression
9+ (member_access_expression
10+ name: (identifier) @function))
11+
12+(invocation_expression
13+ (member_access_expression
14+ expression: (identifier) @variable))
15+
16+(invocation_expression
17+ function: (conditional_access_expression
18+ (member_binding_expression
19+ name: (identifier) @function)))
20+
21+(invocation_expression
22+ [(identifier) (qualified_name)] @function)
23+
24+; Generic Method invocation with generic type
25+(invocation_expression
26+ function: (generic_name
27+ . (identifier) @function))
28+
29+;; Namespaces
30+
31+(namespace_declaration
32+ name: [(identifier) (qualified_name)] @namespace)
3
33
4;; Types
34;; Types
5(interface_declaration name: (identifier) @type)
35(interface_declaration name: (identifier) @type)
@@ -8,8 +38,10 @@
8(struct_declaration (identifier) @type)
38(struct_declaration (identifier) @type)
9(record_declaration (identifier) @type)
39(record_declaration (identifier) @type)
10(namespace_declaration name: (identifier) @type)
40(namespace_declaration name: (identifier) @type)
11−
41+(using_directive (_) @namespace)
12(constructor_declaration name: (identifier) @type)
42(constructor_declaration name: (identifier) @type)
43+(object_creation_expression [(identifier) (qualified_name)] @type)
44+(type_parameter_list (type_parameter) @type)
13
45
14[
46[
15 (implicit_type)
47 (implicit_type)
@@ -19,6 +51,31 @@
19 (predefined_type)
51 (predefined_type)
20] @type.builtin
52] @type.builtin
21
53
54+;; Generic Types
55+(type_of_expression
56+ (generic_name
57+ (identifier) @type))
58+
59+(base_list
60+ (generic_name
61+ (identifier) @type))
62+
63+(type_constraint
64+ (generic_name
65+ (identifier) @type))
66+
67+(object_creation_expression
68+ (generic_name
69+ (identifier) @type))
70+
71+(property_declaration
72+ (generic_name
73+ (identifier) @type))
74+
75+(_
76+ type: (generic_name
77+ (identifier) @type))
78+
22;; Enum
79;; Enum
23(enum_member_declaration (identifier) @variable.other.member)
80(enum_member_declaration (identifier) @variable.other.member)
24
81
@@ -66,24 +123,37 @@
66 "++"
123 "++"
67 "+="
124 "+="
68 "<"
125 "<"
126+ "<="
69 "<<"
127 "<<"
128+ "<<="
70 "="
129 "="
71 "=="
130 "=="
72 "!"
131 "!"
73 "!="
132 "!="
74 "=>"
133 "=>"
75 ">"
134 ">"
135+ ">="
76 ">>"
136 ">>"
137+ ">>="
77 "|"
138 "|"
78 "||"
139 "||"
140+ "|="
79 "?"
141 "?"
80 "??"
142 "??"
81 "^"
143 "^"
144+ "^="
82 "~"
145 "~"
83 "*"
146 "*"
147+ "*="
84 "/"
148 "/"
149+ "/="
85 "%"
150 "%"
151+ "%="
86 ":"
152 ":"
153+ ".."
154+ "&="
155+ "->"
156+ "??="
87] @operator
157] @operator
88
158
89[
159[
@@ -131,6 +201,7 @@
131 "return"
201 "return"
132 "sizeof"
202 "sizeof"
133 "stackalloc"
203 "stackalloc"
204+ "static"
134 "struct"
205 "struct"
135 "switch"
206 "switch"
136 "throw"
207 "throw"
@@ -157,6 +228,8 @@
157 "let"
228 "let"
158] @keyword
229] @keyword
159
230
231+(preprocessor_call) @keyword.directive
232+(preprocessor_call (_) @keyword.directive)
160
233
161;; Linq
234;; Linq
162(from_clause (identifier) @variable)
235(from_clause (identifier) @variable)
@@ -172,13 +245,13 @@
172 (identifier) @variable)))
245 (identifier) @variable)))
173
246
174;; Exprs
247;; Exprs
175−(binary_expression (identifier) @variable (identifier) @variable)
248+(binary_expression [(identifier) (qualified_name)] @variable [(identifier) (qualified_name)] @variable)
176−(binary_expression (identifier)* @variable)
249+(binary_expression [(identifier) (qualified_name)]* @variable)
177−(conditional_expression (identifier) @variable)
250+(conditional_expression [(identifier) (qualified_name)] @variable)
178−(prefix_unary_expression (identifier) @variable)
251+(prefix_unary_expression [(identifier) (qualified_name)] @variable)
179−(postfix_unary_expression (identifier)* @variable)
252+(postfix_unary_expression [(identifier) (qualified_name)]* @variable)
180−(assignment_expression (identifier) @variable)
253+(assignment_expression [(identifier) (qualified_name)] @variable)
181−(cast_expression (identifier) @type (identifier) @variable)
254+(cast_expression [(identifier) (qualified_name)] @type [(identifier) (qualified_name)] @variable)
182
255
183;; Class
256;; Class
184(base_list (identifier) @type)
257(base_list (identifier) @type)
@@ -192,6 +265,10 @@
192(property_declaration
265(property_declaration
193 type: (identifier) @type
266 type: (identifier) @type
194 name: (identifier) @variable)
267 name: (identifier) @variable)
268+
269+;; Delegate
270+
271+(delegate_declaration (identifier) @type)
195
272
196;; Lambda
273;; Lambda
197(lambda_expression) @variable
274(lambda_expression) @variable
@@ -206,12 +283,20 @@
206(parameter (identifier) @variable.parameter)
283(parameter (identifier) @variable.parameter)
207(parameter_modifier) @keyword
284(parameter_modifier) @keyword
208
285
286+(parameter_list
287+ (parameter
288+ name: (identifier) @parameter))
289+
290+(parameter_list
291+ (parameter
292+ type: [(identifier) (qualified_name)] @type))
293+
209;; Typeof
294;; Typeof
210−(type_of_expression (identifier) @type)
295+(type_of_expression [(identifier) (qualified_name)] @type)
211
296
212;; Variable
297;; Variable
213−(variable_declaration (identifier) @type)
298+(variable_declaration [(identifier) (qualified_name)] @type)
214−(variable_declarator (identifier) @variable)
299+(variable_declarator [(identifier) (qualified_name)] @variable)
215
300
216;; Return
301;; Return
217(return_statement (identifier) @variable)
302(return_statement (identifier) @variable)
@@ -219,8 +304,8 @@
219
304
220;; Type
305;; Type
221(generic_name (identifier) @type)
306(generic_name (identifier) @type)
222−(type_parameter (identifier) @variable.parameter)
307+(type_parameter [(identifier) (qualified_name)] @variable.parameter)
223−(type_argument_list (identifier) @type)
308+(type_argument_list [(identifier) (qualified_name)] @type)
224
309
225;; Type constraints
310;; Type constraints
226(type_parameter_constraints_clause (identifier) @variable.parameter)
311(type_parameter_constraints_clause (identifier) @variable.parameter)
@@ -236,3 +321,16 @@
236
321
237;; Lock statement
322;; Lock statement
238(lock_statement (identifier) @variable)
323(lock_statement (identifier) @variable)
324+
325+;; Rest
326+(member_access_expression) @variable
327+(element_access_expression (identifier) @variable)
328+(argument (identifier) @variable)
329+(for_statement (identifier) @variable)
330+(for_each_statement (identifier) @variable)
331+(expression_statement (identifier) @variable)
332+(member_access_expression expression: (identifier) @variable)
333+(member_access_expression name: (identifier) @variable)
334+(conditional_access_expression [(identifier) (qualified_name)] @variable)
335+((identifier) @comment.unused
336+ (#eq? @comment.unused "_"))