Skip to content

Commit d9c8be8

Browse files
Improve grammar for query writing (#187)
* Alias this type. * Separate class and interface extends clauses. * Name fields of parameters. * Name type parameters fields. * Name parameters fields. * Name import source fields. * Name property name fields in enums. * Name type in parenthesized expression. * Name index signature fields. * Name mapped type clause fields. * Name type field in construct signature. * Name type field in constructor type. * Name fields in tuple parameters. * Name fields in type parameters. * Rename field to follow convention of other function return types. * Name more fields in types. * Use tree-sitter from local modules, instead of relying on globally available executable. * Down-grade tree-sitter version used for Rust bindings for compatibility. * Update lock file to current dependency.
1 parent ef6ee5b commit d9c8be8

File tree

12 files changed

+254138
-298556
lines changed

12 files changed

+254138
-298556
lines changed

common/corpus/declarations.txt

Lines changed: 35 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ declare module Foo {
8080
(ambient_declaration
8181
(function_signature
8282
name: (identifier)
83-
parameters: (formal_parameters (required_parameter (identifier) (type_annotation (predefined_type))))
83+
parameters: (formal_parameters (required_parameter pattern: (identifier) type: (type_annotation (predefined_type))))
8484
return_type: (type_annotation (predefined_type))))
8585

8686
(ambient_declaration
@@ -89,7 +89,7 @@ declare module Foo {
8989
body: (statement_block
9090
(function_signature
9191
name: (identifier)
92-
parameters: (formal_parameters (required_parameter (identifier) (type_annotation (predefined_type))))
92+
parameters: (formal_parameters (required_parameter pattern: (identifier) type: (type_annotation (predefined_type))))
9393
return_type: (type_annotation (predefined_type)))
9494
(lexical_declaration (variable_declarator
9595
name: (identifier)
@@ -114,7 +114,7 @@ declare module Foo {
114114
(method_signature
115115
name: (property_identifier)
116116
parameters: (formal_parameters
117-
(required_parameter (identifier) (type_annotation (predefined_type)))))
117+
(required_parameter pattern: (identifier) type: (type_annotation (predefined_type)))))
118118
(public_field_definition
119119
name: (property_identifier)
120120
type: (type_annotation (predefined_type)))
@@ -734,7 +734,7 @@ class Foo<Bar> extends Baz { bar = 5; static one(a) { return a; }; two(b) { retu
734734
(class_declaration
735735
(type_identifier)
736736
(type_parameters (type_parameter (type_identifier)))
737-
(class_heritage (extends_clause (type_identifier)))
737+
(class_heritage (extends_clause (identifier)))
738738
(class_body
739739
(public_field_definition (property_identifier) (number))
740740
(method_definition (property_identifier)
@@ -839,8 +839,8 @@ export type Extracted = keyof Pick<Base, "id">
839839
name: (type_identifier)
840840
value: (index_type_query
841841
(generic_type
842-
(type_identifier)
843-
(type_arguments
842+
name: (type_identifier)
843+
type_arguments: (type_arguments
844844
(type_identifier)
845845
(literal_type
846846
(string (string_fragment)))))))))
@@ -908,9 +908,9 @@ class D extends A<
908908
(class_body))
909909
(class_declaration
910910
(type_identifier)
911-
(class_heritage (extends_clause (generic_type
912-
(type_identifier)
913-
(type_arguments (type_identifier) (type_identifier)))))
911+
(class_heritage (extends_clause
912+
(identifier)
913+
(type_arguments (type_identifier) (type_identifier))))
914914
(class_body)))
915915

916916
=======================================
@@ -932,11 +932,10 @@ export class A extends B<C, D> implements C {}
932932
(type_identifier)
933933
(class_heritage
934934
(extends_clause
935-
(functional_extension
936-
(generic_type
937-
(type_identifier)
938-
(type_arguments
939-
(type_identifier)))
935+
(call_expression
936+
(identifier)
937+
(type_arguments
938+
(type_identifier))
940939
(arguments
941940
(identifier))))
942941
(implements_clause
@@ -947,11 +946,10 @@ export class A extends B<C, D> implements C {}
947946
(type_identifier)
948947
(class_heritage
949948
(extends_clause
950-
(functional_extension
951-
(generic_type
952-
(type_identifier)
953-
(type_arguments
954-
(type_identifier)))
949+
(call_expression
950+
(identifier)
951+
(type_arguments
952+
(type_identifier))
955953
(arguments
956954
(identifier))))
957955
(implements_clause
@@ -961,15 +959,14 @@ export class A extends B<C, D> implements C {}
961959
(type_identifier)
962960
(class_heritage
963961
(extends_clause
964-
(functional_extension
965-
(generic_type
966-
(type_identifier)
967-
(type_arguments
968-
(type_identifier)))
969-
(arguments
970-
(identifier))
962+
(call_expression
963+
(identifier)
971964
(type_arguments
972-
(type_identifier))))
965+
(type_identifier))
966+
(arguments
967+
(identifier)))
968+
(type_arguments
969+
(type_identifier)))
973970
(implements_clause
974971
(type_identifier)))
975972
(class_body))
@@ -978,15 +975,14 @@ export class A extends B<C, D> implements C {}
978975
(type_identifier)
979976
(class_heritage
980977
(extends_clause
981-
(functional_extension
982-
(generic_type
983-
(type_identifier)
984-
(type_arguments
985-
(type_identifier)))
986-
(arguments
987-
(identifier))
978+
(call_expression
979+
(identifier)
988980
(type_arguments
989-
(type_identifier))))
981+
(type_identifier))
982+
(arguments
983+
(identifier)))
984+
(type_arguments
985+
(type_identifier)))
990986
(implements_clause
991987
(type_identifier)))
992988
(class_body)))
@@ -995,11 +991,10 @@ export class A extends B<C, D> implements C {}
995991
(type_identifier)
996992
(class_heritage
997993
(extends_clause
998-
(generic_type
994+
(identifier)
995+
(type_arguments
999996
(type_identifier)
1000-
(type_arguments
1001-
(type_identifier)
1002-
(type_identifier))))
997+
(type_identifier)))
1003998
(implements_clause
1004999
(type_identifier)))
10051000
(class_body))))
@@ -1053,7 +1048,7 @@ class Bar extends Foo {
10531048
name: (type_identifier)
10541049
(class_heritage
10551050
(extends_clause
1056-
(type_identifier)))
1051+
value: (identifier)))
10571052
body: (class_body
10581053
(method_definition
10591054
(override_modifier)

common/corpus/functions.txt

Lines changed: 64 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -23,39 +23,39 @@ function foo<T, U>(this: T[]): U[] {
2323
(program
2424
(function_declaration
2525
name: (identifier)
26-
parameters: (formal_parameters (required_parameter (identifier) (type_annotation (predefined_type))))
26+
parameters: (formal_parameters (required_parameter pattern: (identifier) type: (type_annotation (predefined_type))))
2727
body: (statement_block
2828
(return_statement (binary_expression
2929
left: (string (string_fragment))
3030
right: (identifier)))))
3131
(function_declaration
3232
name: (identifier)
33-
type_parameters: (type_parameters (type_parameter (type_identifier)))
34-
parameters: (formal_parameters (required_parameter (identifier) (type_annotation (type_identifier))))
33+
type_parameters: (type_parameters (type_parameter name: (type_identifier)))
34+
parameters: (formal_parameters (required_parameter pattern: (identifier) type: (type_annotation (type_identifier))))
3535
return_type: (type_annotation (type_identifier))
3636
body: (statement_block))
3737
(function_declaration
3838
name: (identifier)
39-
type_parameters: (type_parameters (type_parameter (type_identifier)) (type_parameter (type_identifier)))
39+
type_parameters: (type_parameters (type_parameter name: (type_identifier)) (type_parameter name: (type_identifier)))
4040
parameters: (formal_parameters
4141
(required_parameter
42-
(identifier)
43-
(type_annotation (array_type (type_identifier))))
42+
pattern: (identifier)
43+
type: (type_annotation (array_type (type_identifier))))
4444
(required_parameter
45-
(identifier)
46-
(type_annotation
45+
pattern: (identifier)
46+
type: (type_annotation
4747
(function_type
48-
(formal_parameters (required_parameter (identifier) (type_annotation (type_identifier))))
49-
(type_identifier)))))
48+
parameters: (formal_parameters (required_parameter pattern: (identifier) type: (type_annotation (type_identifier))))
49+
return_type: (type_identifier)))))
5050
return_type: (type_annotation (array_type (type_identifier)))
5151
body: (statement_block))
5252
(function_declaration
5353
name: (identifier)
54-
type_parameters: (type_parameters (type_parameter (type_identifier)) (type_parameter (type_identifier)))
54+
type_parameters: (type_parameters (type_parameter name: (type_identifier)) (type_parameter name: (type_identifier)))
5555
parameters: (formal_parameters
5656
(required_parameter
57-
(this)
58-
(type_annotation (array_type (type_identifier)))))
57+
pattern: (this)
58+
type: (type_annotation (array_type (type_identifier)))))
5959
return_type: (type_annotation (array_type (type_identifier)))
6060
body: (statement_block (return_statement (array)))))
6161

@@ -134,30 +134,30 @@ function* foo<A>(amount, interestRate, duration): number {
134134
(program
135135
(expression_statement
136136
(arrow_function
137-
(type_parameters (type_parameter (type_identifier)))
138-
(formal_parameters
139-
(required_parameter (identifier))
140-
(required_parameter (identifier))
141-
(required_parameter (identifier)))
142-
(type_annotation (predefined_type))
143-
(number)))
137+
type_parameters: (type_parameters (type_parameter name: (type_identifier)))
138+
parameters: (formal_parameters
139+
(required_parameter pattern: (identifier))
140+
(required_parameter pattern: (identifier))
141+
(required_parameter pattern: (identifier)))
142+
return_type: (type_annotation (predefined_type))
143+
body: (number)))
144144
(generator_function_declaration
145-
(identifier)
146-
(type_parameters (type_parameter (type_identifier)))
147-
(formal_parameters
148-
(required_parameter (identifier))
149-
(required_parameter (identifier))
150-
(required_parameter (identifier)))
151-
(type_annotation (predefined_type))
152-
(statement_block
145+
name: (identifier)
146+
type_parameters: (type_parameters (type_parameter name: (type_identifier)))
147+
parameters: (formal_parameters
148+
(required_parameter pattern: (identifier))
149+
(required_parameter pattern: (identifier))
150+
(required_parameter pattern: (identifier)))
151+
return_type: (type_annotation (predefined_type))
152+
body: (statement_block
153153
(expression_statement (yield_expression (binary_expression
154-
(binary_expression (binary_expression (identifier) (identifier)) (identifier))
155-
(number))))))
154+
left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))
155+
right: (number))))))
156156
(expression_statement
157157
(arrow_function
158-
(formal_parameters (required_parameter (identifier) (type_annotation (predefined_type))))
159-
(type_annotation (predefined_type))
160-
(number))))
158+
parameters: (formal_parameters (required_parameter pattern: (identifier) type: (type_annotation (predefined_type))))
159+
return_type: (type_annotation (predefined_type))
160+
body: (number))))
161161

162162
==================================
163163
Arrow function with parameter named async
@@ -188,13 +188,13 @@ class A extends B {
188188
(program
189189
(class_declaration
190190
name: (type_identifier)
191-
(class_heritage (extends_clause (type_identifier)))
191+
(class_heritage (extends_clause value: (identifier)))
192192
body: (class_body
193193
(method_definition
194194
name: (property_identifier)
195195
parameters: (formal_parameters
196-
(required_parameter (identifier) (type_annotation (predefined_type)))
197-
(required_parameter (identifier) (type_annotation (predefined_type))))
196+
(required_parameter pattern: (identifier) type: (type_annotation (predefined_type)))
197+
(required_parameter pattern: (identifier) type: (type_annotation (predefined_type))))
198198
body: (statement_block
199199
(expression_statement (call_expression
200200
function: (super)
@@ -251,43 +251,43 @@ function foo(): () => { [key: foo]: bar } {}
251251

252252
(program
253253
(function_declaration
254-
(identifier)
255-
(formal_parameters)
256-
(statement_block))
254+
name: (identifier)
255+
parameters: (formal_parameters)
256+
body: (statement_block))
257257
(function_signature
258-
(identifier)
259-
(formal_parameters (required_parameter (identifier))))
258+
name: (identifier)
259+
parameters: (formal_parameters (required_parameter pattern: (identifier))))
260260
(function_signature
261-
(identifier)
262-
(formal_parameters (required_parameter (identifier)))
263-
(type_annotation (type_identifier)))
261+
name: (identifier)
262+
parameters: (formal_parameters (required_parameter pattern: (identifier)))
263+
return_type: (type_annotation (type_identifier)))
264264
(function_signature
265-
(identifier)
266-
(formal_parameters
267-
(required_parameter (identifier))))
265+
name: (identifier)
266+
parameters: (formal_parameters
267+
(required_parameter pattern: (identifier))))
268268
(function_signature
269-
(identifier)
270-
(formal_parameters)
271-
(type_annotation
269+
name: (identifier)
270+
parameters: (formal_parameters)
271+
return_type: (type_annotation
272272
(function_type
273-
(formal_parameters)
274-
(object_type
273+
parameters: (formal_parameters)
274+
return_type: (object_type
275275
(index_signature
276-
(identifier)
277-
(type_identifier)
278-
(type_annotation (type_identifier)))))))
276+
name: (identifier)
277+
index_type: (type_identifier)
278+
type: (type_annotation (type_identifier)))))))
279279
(function_declaration
280-
(identifier)
281-
(formal_parameters)
282-
(type_annotation
280+
name: (identifier)
281+
parameters: (formal_parameters)
282+
return_type: (type_annotation
283283
(function_type
284-
(formal_parameters)
285-
(object_type
284+
parameters: (formal_parameters)
285+
return_type: (object_type
286286
(index_signature
287-
(identifier)
288-
(type_identifier)
289-
(type_annotation (type_identifier))))))
290-
(statement_block)))
287+
name: (identifier)
288+
index_type: (type_identifier)
289+
type: (type_annotation (type_identifier))))))
290+
body: (statement_block)))
291291

292292
====================================================================================
293293
Ambiguity between function signature and function declaration: comments and newlines

0 commit comments

Comments
 (0)