From 83d92c56baa7b9ab0cdc3a19c645e0f9af8c437b Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Wed, 15 Jun 2022 21:46:43 +0200 Subject: [PATCH] (fix) handle const in html pre-scanner (#1524) #1499 --- packages/language-server/src/lib/documents/utils.ts | 3 ++- .../test/lib/documents/parseHtml.test.ts | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/language-server/src/lib/documents/utils.ts b/packages/language-server/src/lib/documents/utils.ts index 6388956f1..cb3c0830c 100644 --- a/packages/language-server/src/lib/documents/utils.ts +++ b/packages/language-server/src/lib/documents/utils.ts @@ -432,7 +432,8 @@ export function isInsideMoustacheTag(html: string, tagStart: number | null, posi // TODO make this just check for '{'? // Theoretically, someone could do {a < b} in a simple moustache tag charactersBeforePosition.lastIndexOf('{#'), - charactersBeforePosition.lastIndexOf('{:') + charactersBeforePosition.lastIndexOf('{:'), + charactersBeforePosition.lastIndexOf('{@') ) > charactersBeforePosition.lastIndexOf('}') ); } else { diff --git a/packages/language-server/test/lib/documents/parseHtml.test.ts b/packages/language-server/test/lib/documents/parseHtml.test.ts index 875717f85..54dcc0d6c 100644 --- a/packages/language-server/test/lib/documents/parseHtml.test.ts +++ b/packages/language-server/test/lib/documents/parseHtml.test.ts @@ -37,6 +37,18 @@ describe('parseHtml', () => { ); }); + it('ignore binary operator inside @const', () => { + testRootElements( + parseHtml( + `{#if foo} + {@const bar = 1 << 2} + + {/if} + ` + ) + ); + }); + it('ignore less than operator inside control flow moustache', () => { testRootElements( parseHtml(