diff --git a/vscode-ng-language-service/syntaxes/expression.json b/vscode-ng-language-service/syntaxes/expression.json index 9e3fe99acd6..dc61e1286fa 100644 --- a/vscode-ng-language-service/syntaxes/expression.json +++ b/vscode-ng-language-service/syntaxes/expression.json @@ -213,8 +213,8 @@ ] }, "functionCall": { - "begin": "(?=(\\??\\.\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\()", - "end": "(?<=\\))(?!(\\??\\.\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\()", + "begin": "(?=(\\??\\.\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(<([^<>]|\\<[^<>]+\\>)+>\\s*)?(\\?\\.\\s*)?\\()", + "end": "(?<=\\))(?!(\\??\\.\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(<([^<>]|\\<[^<>]+\\>)+>\\s*)?(\\?\\.\\s*)?\\()", "patterns": [ { "name": "punctuation.accessor.ts", diff --git a/vscode-ng-language-service/syntaxes/src/expression.ts b/vscode-ng-language-service/syntaxes/src/expression.ts index 9a36ae11b5e..985db492a65 100644 --- a/vscode-ng-language-service/syntaxes/src/expression.ts +++ b/vscode-ng-language-service/syntaxes/src/expression.ts @@ -223,8 +223,9 @@ export const Expression: GrammarDefinition = { }, functionCall: { - begin: /(?=(\??\.\s*)?([_$[:alpha:]][_$[:alnum:]]*)\s*(<([^<>]|\<[^<>]+\>)+>\s*)?\()/, - end: /(?<=\))(?!(\??\.\s*)?([_$[:alpha:]][_$[:alnum:]]*)\s*(<([^<>]|\<[^<>]+\>)+>\s*)?\()/, + begin: + /(?=(\??\.\s*)?([_$[:alpha:]][_$[:alnum:]]*)\s*(<([^<>]|\<[^<>]+\>)+>\s*)?(\?\.\s*)?\()/, + end: /(?<=\))(?!(\??\.\s*)?([_$[:alpha:]][_$[:alnum:]]*)\s*(<([^<>]|\<[^<>]+\>)+>\s*)?(\?\.\s*)?\()/, patterns: [ { name: 'punctuation.accessor.ts', diff --git a/vscode-ng-language-service/syntaxes/test/data/expression.html b/vscode-ng-language-service/syntaxes/test/data/expression.html index fcf0b0057e1..1a38b1eea8c 100644 --- a/vscode-ng-language-service/syntaxes/test/data/expression.html +++ b/vscode-ng-language-service/syntaxes/test/data/expression.html @@ -37,6 +37,7 @@ {{ call()?.conditional; }} {{ call()!.conditional }} {{ call()!.conditional; }} +{{ call?.()}} {{ object.call() }} @@ -47,6 +48,7 @@ {{ object?.call()?.conditional; }} {{ object!.call()!.conditional }} {{ object!.call()!.conditional; }} +{{ object.call?.()}} {{ call(withParams) }} @@ -116,4 +118,4 @@ as i }} {{ (a, b) => a / b + 123 }} -{{ someSignal.update(prev => prev + 1) }} +{{ someSignal.update(prev => prev + 1) }} \ No newline at end of file diff --git a/vscode-ng-language-service/syntaxes/test/data/expression.html.snap b/vscode-ng-language-service/syntaxes/test/data/expression.html.snap index 600c42b0f42..1b8a25d2110 100644 --- a/vscode-ng-language-service/syntaxes/test/data/expression.html.snap +++ b/vscode-ng-language-service/syntaxes/test/data/expression.html.snap @@ -373,6 +373,15 @@ # ^ template.ng expression.ng punctuation.terminator.statement.ts # ^ template.ng expression.ng # ^^ template.ng punctuation.definition.block.ts +>{{ call?.()}} +#^^ template.ng punctuation.definition.block.ts +# ^ template.ng expression.ng +# ^^^^ template.ng expression.ng entity.name.function.ts +# ^ template.ng expression.ng punctuation.accessor.ts +# ^ template.ng expression.ng punctuation.accessor.ts +# ^ template.ng expression.ng meta.brace.round.ts +# ^ template.ng expression.ng meta.brace.round.ts +# ^^ template.ng punctuation.definition.block.ts > > #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ template.ng @@ -478,6 +487,17 @@ # ^ template.ng expression.ng punctuation.terminator.statement.ts # ^ template.ng expression.ng # ^^ template.ng punctuation.definition.block.ts +>{{ object.call?.()}} +#^^ template.ng punctuation.definition.block.ts +# ^ template.ng expression.ng +# ^^^^^^ template.ng expression.ng variable.other.object.ts +# ^ template.ng expression.ng punctuation.accessor.ts +# ^^^^ template.ng expression.ng entity.name.function.ts +# ^ template.ng expression.ng punctuation.accessor.ts +# ^ template.ng expression.ng punctuation.accessor.ts +# ^ template.ng expression.ng meta.brace.round.ts +# ^ template.ng expression.ng meta.brace.round.ts +# ^^ template.ng punctuation.definition.block.ts > > #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ template.ng @@ -1531,5 +1551,4 @@ # ^ template.ng expression.ng constant.numeric.decimal.ts # ^ template.ng expression.ng meta.brace.round.ts # ^ template.ng expression.ng -# ^^ template.ng punctuation.definition.block.ts -> \ No newline at end of file +# ^^ template.ng punctuation.definition.block.ts \ No newline at end of file