fix(vscode-extension): add syntax highlighting for spread/rest expressions

Updates the syntax definition to include spread/rest expressions.
This commit is contained in:
Kristiyan Kostadinov
2026-01-13 09:45:42 +01:00
committed by Jessica Janiuk
parent e45f8afdab
commit c70a6a6ecc
4 changed files with 94 additions and 0 deletions
@@ -160,6 +160,10 @@
"name": "keyword.operator.bitwise.shift.ts",
"match": "<<|>>>|>>"
},
{
"name": "keyword.operator.spread.ts",
"match": "\\.\\.\\."
},
{
"name": "keyword.operator.comparison.ts",
"match": "===|!==|==|!="
@@ -169,6 +169,10 @@ export const Expression: GrammarDefinition = {
name: 'keyword.operator.bitwise.shift.ts',
match: /<<|>>>|>>/,
},
{
name: 'keyword.operator.spread.ts',
match: /\.\.\./,
},
{
name: 'keyword.operator.comparison.ts',
match: /===|!==|==|!=/,
@@ -98,3 +98,9 @@ as i }}
{{ (let param of params?.get('value')!.property | async).anotherProperty | translate: ['language1', 'language2']; let i
= index; }}
<!-- Spread -->
{{ [1, ...foo, 2, ...bar, 3] }}
{{ {{a: 1, ...foo, b: 2, ...bar, c: 3}} }}
<!-- Rest -->
{{ someFn(1, ...foo, 2, ...bar, 3, ...baz) }}
@@ -1203,4 +1203,84 @@
# ^ template.ng expression.ng
# ^^ template.ng punctuation.definition.block.ts
>
><!-- Spread -->
#^^^^^^^^^^^^^^^^ template.ng
>{{ [1, ...foo, 2, ...bar, 3] }}
#^^ template.ng punctuation.definition.block.ts
# ^ template.ng expression.ng
# ^ template.ng expression.ng meta.array.literal.ts meta.brace.square.ts
# ^ template.ng expression.ng meta.array.literal.ts constant.numeric.decimal.ts
# ^ template.ng expression.ng meta.array.literal.ts punctuation.separator.comma.ts
# ^ template.ng expression.ng meta.array.literal.ts
# ^^^ template.ng expression.ng meta.array.literal.ts keyword.operator.spread.ts
# ^^^ template.ng expression.ng meta.array.literal.ts variable.other.readwrite.ts
# ^ template.ng expression.ng meta.array.literal.ts punctuation.separator.comma.ts
# ^ template.ng expression.ng meta.array.literal.ts
# ^ template.ng expression.ng meta.array.literal.ts constant.numeric.decimal.ts
# ^ template.ng expression.ng meta.array.literal.ts punctuation.separator.comma.ts
# ^ template.ng expression.ng meta.array.literal.ts
# ^^^ template.ng expression.ng meta.array.literal.ts keyword.operator.spread.ts
# ^^^ template.ng expression.ng meta.array.literal.ts variable.other.readwrite.ts
# ^ template.ng expression.ng meta.array.literal.ts punctuation.separator.comma.ts
# ^ template.ng expression.ng meta.array.literal.ts
# ^ template.ng expression.ng meta.array.literal.ts constant.numeric.decimal.ts
# ^ template.ng expression.ng meta.array.literal.ts meta.brace.square.ts
# ^ template.ng expression.ng
# ^^ template.ng punctuation.definition.block.ts
>{{ {{a: 1, ...foo, b: 2, ...bar, c: 3}} }}
#^^ template.ng punctuation.definition.block.ts
# ^^^ template.ng expression.ng
# ^ template.ng expression.ng variable.other.readwrite.ts
# ^^ template.ng expression.ng
# ^ template.ng expression.ng constant.numeric.decimal.ts
# ^ template.ng expression.ng punctuation.separator.comma.ts
# ^ template.ng expression.ng
# ^^^ template.ng expression.ng keyword.operator.spread.ts
# ^^^ template.ng expression.ng variable.other.readwrite.ts
# ^ template.ng expression.ng punctuation.separator.comma.ts
# ^ template.ng expression.ng
# ^ template.ng expression.ng variable.other.readwrite.ts
# ^^ template.ng expression.ng
# ^ template.ng expression.ng constant.numeric.decimal.ts
# ^ template.ng expression.ng punctuation.separator.comma.ts
# ^ template.ng expression.ng
# ^^^ template.ng expression.ng keyword.operator.spread.ts
# ^^^ template.ng expression.ng variable.other.readwrite.ts
# ^ template.ng expression.ng punctuation.separator.comma.ts
# ^ template.ng expression.ng
# ^ template.ng expression.ng variable.other.readwrite.ts
# ^^ template.ng expression.ng
# ^ template.ng expression.ng constant.numeric.decimal.ts
# ^^ template.ng punctuation.definition.block.ts
# ^^^^ template.ng
>
><!-- Rest -->
#^^^^^^^^^^^^^^ template.ng
>{{ someFn(1, ...foo, 2, ...bar, 3, ...baz) }}
#^^ template.ng punctuation.definition.block.ts
# ^ template.ng expression.ng
# ^^^^^^ template.ng expression.ng entity.name.function.ts
# ^ template.ng expression.ng meta.brace.round.ts
# ^ template.ng expression.ng constant.numeric.decimal.ts
# ^ template.ng expression.ng punctuation.separator.comma.ts
# ^ template.ng expression.ng
# ^^^ template.ng expression.ng keyword.operator.spread.ts
# ^^^ template.ng expression.ng variable.other.readwrite.ts
# ^ template.ng expression.ng punctuation.separator.comma.ts
# ^ template.ng expression.ng
# ^ template.ng expression.ng constant.numeric.decimal.ts
# ^ template.ng expression.ng punctuation.separator.comma.ts
# ^ template.ng expression.ng
# ^^^ template.ng expression.ng keyword.operator.spread.ts
# ^^^ template.ng expression.ng variable.other.readwrite.ts
# ^ template.ng expression.ng punctuation.separator.comma.ts
# ^ template.ng expression.ng
# ^ template.ng expression.ng constant.numeric.decimal.ts
# ^ template.ng expression.ng punctuation.separator.comma.ts
# ^ template.ng expression.ng
# ^^^ template.ng expression.ng keyword.operator.spread.ts
# ^^^ template.ng expression.ng variable.other.readwrite.ts
# ^ template.ng expression.ng meta.brace.round.ts
# ^ template.ng expression.ng
# ^^ template.ng punctuation.definition.block.ts
>