From bf326963e5eb8f9d22ca1ff7af7086529b3841a1 Mon Sep 17 00:00:00 2001 From: johnsoncodehk Date: Mon, 26 Dec 2022 01:43:25 +0800 Subject: [PATCH] fix: double quotes not allowed in attribute value close #2250 --- .../vue-language-core/src/generators/template.ts | 5 +++-- vue-language-tools/vue-test-workspace/vue-tsc/#2250/main.vue | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 vue-language-tools/vue-test-workspace/vue-tsc/#2250/main.vue diff --git a/vue-language-tools/vue-language-core/src/generators/template.ts b/vue-language-tools/vue-language-core/src/generators/template.ts index c3ccd2a28..8f3028112 100644 --- a/vue-language-tools/vue-language-core/src/generators/template.ts +++ b/vue-language-tools/vue-language-core/src/generators/template.ts @@ -1192,7 +1192,8 @@ export function generate( } } function writeAttrValue(attrNode: CompilerDOM.TextNode) { - codeGen.push('"'); + const char = attrNode.loc.source.startsWith("'") ? "'" : '"'; + codeGen.push(char); let start = attrNode.loc.start.offset; let end = attrNode.loc.end.offset; let content = attrNode.loc.source; @@ -1210,7 +1211,7 @@ export function generate( [start, end], getCaps(capabilitiesSet.all), ]); - codeGen.push('"'); + codeGen.push(char); } } function writeInlineCss(node: CompilerDOM.ElementNode) { diff --git a/vue-language-tools/vue-test-workspace/vue-tsc/#2250/main.vue b/vue-language-tools/vue-test-workspace/vue-tsc/#2250/main.vue new file mode 100644 index 000000000..e4916b1a5 --- /dev/null +++ b/vue-language-tools/vue-test-workspace/vue-tsc/#2250/main.vue @@ -0,0 +1,5 @@ +