From 39d9d7ed9d52cac536b9e13ce2b5102abbfa5201 Mon Sep 17 00:00:00 2001 From: KazariEX Date: Thu, 20 Nov 2025 17:24:46 +0800 Subject: [PATCH 1/2] perf: skip unnecessary runtime codegen step --- .../lib/plugins/vue-template-html.ts | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/packages/language-core/lib/plugins/vue-template-html.ts b/packages/language-core/lib/plugins/vue-template-html.ts index 779b36112a..5f280ced50 100644 --- a/packages/language-core/lib/plugins/vue-template-html.ts +++ b/packages/language-core/lib/plugins/vue-template-html.ts @@ -31,13 +31,30 @@ const plugin: VueLanguagePlugin = ({ modules }) => { addedSuffix = true; } - const result = compiler.compile(template, { + const ast = compiler.baseParse(template, { + ...compiler.parserOptions, ...options, comments: true, }); + + const [nodeTransforms, directiveTransforms] = compiler.getBaseTransformPreset(); + compiler.transform(ast, { + ...options, + nodeTransforms: [ + ...nodeTransforms, + ...options.nodeTransforms ?? [], + ], + directiveTransforms: { + ...directiveTransforms, + ...options.directiveTransforms, + }, + }); + // @ts-expect-error - result.__addedSuffix = addedSuffix; - return result; + return { + ast, + __addedSuffix: addedSuffix, + } as CompilerDOM.CodegenResult; } }, From bb42b870b33cb49cc3bba8e7ee4470e38b73f180 Mon Sep 17 00:00:00 2001 From: KazariEX Date: Thu, 20 Nov 2025 17:36:05 +0800 Subject: [PATCH 2/2] refactor: use `parse` --- packages/language-core/lib/plugins/vue-template-html.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/language-core/lib/plugins/vue-template-html.ts b/packages/language-core/lib/plugins/vue-template-html.ts index 5f280ced50..dc48623eca 100644 --- a/packages/language-core/lib/plugins/vue-template-html.ts +++ b/packages/language-core/lib/plugins/vue-template-html.ts @@ -31,8 +31,7 @@ const plugin: VueLanguagePlugin = ({ modules }) => { addedSuffix = true; } - const ast = compiler.baseParse(template, { - ...compiler.parserOptions, + const ast = compiler.parse(template, { ...options, comments: true, });