Skip to content

Commit ff2a624

Browse files
feat: collection expression support (#402)
1 parent 5eb7f1f commit ff2a624

8 files changed

Lines changed: 500287 additions & 490722 deletions

File tree

grammar.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ export default grammar({
8282

8383
[$.parenthesized_pattern, $._parenthesized_pattern_with_designation],
8484

85+
[$.expression_element, $.argument],
86+
[$.spread_element, $.range_expression],
87+
[$.collection_expression, $.list_pattern],
88+
8589
[$._reserved_identifier, $.modifier],
8690
[$._reserved_identifier, $.scoped_type],
8791
[$._reserved_identifier, $.implicit_type],
@@ -1344,6 +1348,7 @@ export default grammar({
13441348
$.as_expression,
13451349
$.cast_expression,
13461350
$.checked_expression,
1351+
$.collection_expression,
13471352
$.switch_expression,
13481353
$.throw_expression,
13491354
$.default_expression,
@@ -1766,6 +1771,24 @@ export default grammar({
17661771
$.initializer_expression,
17671772
),
17681773

1774+
collection_expression: $ => seq(
1775+
'[',
1776+
optional(seq(
1777+
commaSep1($.collection_element),
1778+
optional(','),
1779+
)),
1780+
']',
1781+
),
1782+
1783+
collection_element: $ => choice(
1784+
$.expression_element,
1785+
$.spread_element,
1786+
),
1787+
1788+
expression_element: $ => prec(1, $.expression),
1789+
1790+
spread_element: $ => prec.dynamic(1, prec(PREC.RANGE, seq('..', $.expression))),
1791+
17691792
initializer_expression: $ => seq(
17701793
'{',
17711794
commaSep($.expression),

queries/highlights.scm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@
110110
"%"
111111
"%="
112112
":"
113+
".."
113114
] @operator
114115

115116
[

src/grammar.json

Lines changed: 121 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/node-types.json

Lines changed: 68 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)