From 275a95f8a357f4247fa8023eed17364691ecbd63 Mon Sep 17 00:00:00 2001 From: johnsoncodehk Date: Sun, 25 Dec 2022 22:48:12 +0800 Subject: [PATCH] fix: ignore class, style attrs when `v-bind` exist close #2166 --- .../vue-language-core/src/generators/template.ts | 11 +++++++++++ .../vue-test-workspace/vue-tsc/#2166/main.vue | 3 +++ 2 files changed, 14 insertions(+) create mode 100644 vue-language-tools/vue-test-workspace/vue-tsc/#2166/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 4a7531c15..c18f8becd 100644 --- a/vue-language-tools/vue-language-core/src/generators/template.ts +++ b/vue-language-tools/vue-language-core/src/generators/template.ts @@ -832,6 +832,17 @@ export function generate( let classAttrNums = 0; const unwritedExps: CompilerDOM.SimpleExpressionNode[] = []; + if (node.props.some(prop => + prop.type === CompilerDOM.NodeTypes.DIRECTIVE + && prop.name === 'bind' + && !prop.arg + && prop.exp?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION + )) { + // fix https://github.com/johnsoncodehk/volar/issues/2166 + styleAttrNums++; + classAttrNums++; + } + for (const prop of node.props) { if ( prop.type === CompilerDOM.NodeTypes.DIRECTIVE diff --git a/vue-language-tools/vue-test-workspace/vue-tsc/#2166/main.vue b/vue-language-tools/vue-test-workspace/vue-tsc/#2166/main.vue new file mode 100644 index 000000000..8f276d280 --- /dev/null +++ b/vue-language-tools/vue-test-workspace/vue-tsc/#2166/main.vue @@ -0,0 +1,3 @@ +