diff --git a/syntaxes/html.json b/syntaxes/html.json index 9e64ff9c..604d12f0 100644 --- a/syntaxes/html.json +++ b/syntaxes/html.json @@ -236,7 +236,7 @@ } }, "tag-aurelia-attribute-with-invoke-attribute": { - "match": "[^=](([a-zA-Z0-9:-]+)(\\.)(trigger|delegate|call))", + "match": "(?=\\s)[^=](([a-zA-Z0-9:-]+)(\\.)(trigger|delegate|call))", "captures": { "2": { "name": "entity.other.attribute-name.html" diff --git a/test/syntax.html/invoke.test.ts b/test/syntax.html/invoke.test.ts index 350b31bd..aadea2be 100644 --- a/test/syntax.html/invoke.test.ts +++ b/test/syntax.html/invoke.test.ts @@ -45,4 +45,19 @@ suite('The Aurelia HTML syntax invoke attributes', () => { }); + test('must not tokenize invokes in attribute body with scope "invoke.attribute.html.au"', () => { + + // arrange + let scope = 'meta.tag.inline.any.html'; + + // act + let lineToken = tokenizeLine(''); + + // assert + let token = getTokenOnCharRange(lineToken, 6, 29); + assert.equal(hasScope(token.scopes, scope), true); + + }); + + });