From 8b34cd0b60d85a26908e08a2ea17704dc478bafc Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Tue, 2 May 2023 03:51:33 +0800 Subject: [PATCH] fix: generic attr unexpectedly trimmed by formatting when includes "<" #3101 --- packages/vue-language-core/src/sourceFile.ts | 8 ++++---- packages/vue-test-workspace/format/#3101/input.vue | 1 + packages/vue-test-workspace/format/#3101/output.vue | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 packages/vue-test-workspace/format/#3101/input.vue create mode 100644 packages/vue-test-workspace/format/#3101/output.vue diff --git a/packages/vue-language-core/src/sourceFile.ts b/packages/vue-language-core/src/sourceFile.ts index 21f06b416..01c80ee0b 100644 --- a/packages/vue-language-core/src/sourceFile.ts +++ b/packages/vue-language-core/src/sourceFile.ts @@ -468,7 +468,7 @@ export class VueFile implements VirtualFile { const newData: Sfc['template'] | null = block ? { name: 'template', - start: this.snapshot.getText(0, block.loc.start.offset).lastIndexOf('<'), + start: this.snapshot.getText(0, block.loc.start.offset).lastIndexOf('') + 1, startTagEnd: block.loc.start.offset, endTagStart: block.loc.end.offset, @@ -488,7 +488,7 @@ export class VueFile implements VirtualFile { const newData: Sfc['script'] | null = block ? { name: 'script', - start: this.snapshot.getText(0, block.loc.start.offset).lastIndexOf('<'), + start: this.snapshot.getText(0, block.loc.start.offset).lastIndexOf('') + 1, startTagEnd: block.loc.start.offset, endTagStart: block.loc.end.offset, @@ -510,7 +510,7 @@ export class VueFile implements VirtualFile { const newData: Sfc['scriptSetup'] | null = block ? { name: 'scriptSetup', - start: this.snapshot.getText(0, block.loc.start.offset).lastIndexOf('<'), + start: this.snapshot.getText(0, block.loc.start.offset).lastIndexOf('') + 1, startTagEnd: block.loc.start.offset, endTagStart: block.loc.end.offset, @@ -534,7 +534,7 @@ export class VueFile implements VirtualFile { const block = blocks[i]; const newData: Sfc['styles'][number] = { name: 'style_' + i, - start: this.snapshot.getText(0, block.loc.start.offset).lastIndexOf('<'), + start: this.snapshot.getText(0, block.loc.start.offset).lastIndexOf('') + 1, startTagEnd: block.loc.start.offset, endTagStart: block.loc.end.offset, diff --git a/packages/vue-test-workspace/format/#3101/input.vue b/packages/vue-test-workspace/format/#3101/input.vue new file mode 100644 index 000000000..2519d6e87 --- /dev/null +++ b/packages/vue-test-workspace/format/#3101/input.vue @@ -0,0 +1 @@ + diff --git a/packages/vue-test-workspace/format/#3101/output.vue b/packages/vue-test-workspace/format/#3101/output.vue new file mode 100644 index 000000000..2519d6e87 --- /dev/null +++ b/packages/vue-test-workspace/format/#3101/output.vue @@ -0,0 +1 @@ +