From 6d93d9d4e7f9668db8481e30513be9fdc877b778 Mon Sep 17 00:00:00 2001 From: johnsoncodehk Date: Mon, 5 Sep 2022 04:32:29 +0800 Subject: [PATCH] fix: pug formatter extra spaces close #1784 --- packages/vue-language-core/src/generators/template.ts | 7 +++++-- packages/vue-language-core/src/plugins/vue-tsx.ts | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/vue-language-core/src/generators/template.ts b/packages/vue-language-core/src/generators/template.ts index bf6aae550..4d681f157 100644 --- a/packages/vue-language-core/src/generators/template.ts +++ b/packages/vue-language-core/src/generators/template.ts @@ -61,6 +61,7 @@ export function isIntrinsicElement(runtimeMode: 'runtime-dom' | 'runtime-uni-app export function generate( ts: typeof import('typescript/lib/tsserverlibrary'), vueCompilerOptions: _VueCompilerOptions, + sourceTemplate: string, sourceLang: string, templateAst: CompilerDOM.RootNode, hasScriptSetup: boolean, @@ -309,14 +310,16 @@ export function generate( let rightCharacter: string; // fix https://github.com/johnsoncodehk/volar/issues/1787 - while ((leftCharacter = templateAst.loc.source.substring(start - 1, start)).trim() === '' && leftCharacter.length) { + while ((leftCharacter = sourceTemplate.substring(start - 1, start)).trim() === '' && leftCharacter.length) { start--; content = leftCharacter + content; } - while ((rightCharacter = templateAst.loc.source.substring(start + content.length, start + content.length + 1)).trim() === '' && rightCharacter.length) { + while ((rightCharacter = sourceTemplate.substring(start + content.length, start + content.length + 1)).trim() === '' && rightCharacter.length) { content = content + rightCharacter; } + console.log(content, node.loc.source, sourceTemplate.substring(start - 10, start)); + writeInterpolation( content, start, diff --git a/packages/vue-language-core/src/plugins/vue-tsx.ts b/packages/vue-language-core/src/plugins/vue-tsx.ts index c47461d72..826402240 100644 --- a/packages/vue-language-core/src/plugins/vue-tsx.ts +++ b/packages/vue-language-core/src/plugins/vue-tsx.ts @@ -131,6 +131,7 @@ const plugin: VueLanguagePlugin = ({ modules, vueCompilerOptions, compilerOption return templateGen.generate( ts, vueCompilerOptions, + sfc.template?.content ?? '', sfc.template?.lang ?? 'html', sfc.templateAst, !!sfc.scriptSetup,