From 1ef24b0551718da0a74a8665d0ce4ea6c545ba62 Mon Sep 17 00:00:00 2001 From: johnsoncodehk Date: Sat, 15 Oct 2022 05:40:27 +0800 Subject: [PATCH] fix: SFC AST broken with embedded script tag close #1982 --- .../vue-language-core/src/utils/parseSfc.ts | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/vue-language-tools/vue-language-core/src/utils/parseSfc.ts b/vue-language-tools/vue-language-core/src/utils/parseSfc.ts index 050a58513..bdcdc982e 100644 --- a/vue-language-tools/vue-language-core/src/utils/parseSfc.ts +++ b/vue-language-tools/vue-language-core/src/utils/parseSfc.ts @@ -11,14 +11,19 @@ export function parse(source: string): SFCParseResult { // preserve all whitespaces isPreTag: () => true, getTextMode: ({ tag, props }, parent) => { - if (!parent && tag !== 'template' && props.some( - p => - p.type === compiler.NodeTypes.ATTRIBUTE && - p.name === 'lang' && - p.value && - p.value.content && - p.value.content !== 'html' - )) { + if ( + (!parent && tag !== 'template') + || ( + tag === 'template' + && props.some( + p => + p.type === compiler.NodeTypes.ATTRIBUTE && + p.name === 'lang' && + p.value && + p.value.content && + p.value.content !== 'html' + ) + )) { return compiler.TextModes.RAWTEXT; } else {