From 960b29c37cd290a70b2fb5b05e0fc41dcf1c74d0 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 13 Jul 2023 11:01:02 +0800 Subject: [PATCH] fix: don't remove comments when comment is in the first line (#3365) Co-authored-by: Johnson Chu --- .../src/parsers/scriptSetupRanges.ts | 9 ++++++++- .../vue-tsc/non-strict-template/#3327/import.vue | 11 +++++++++++ .../vue-tsc/non-strict-template/#3327/main.vue | 4 ++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 packages/vue-test-workspace/vue-tsc/non-strict-template/#3327/import.vue create mode 100644 packages/vue-test-workspace/vue-tsc/non-strict-template/#3327/main.vue diff --git a/packages/vue-language-core/src/parsers/scriptSetupRanges.ts b/packages/vue-language-core/src/parsers/scriptSetupRanges.ts index 86b15e358..053422477 100644 --- a/packages/vue-language-core/src/parsers/scriptSetupRanges.ts +++ b/packages/vue-language-core/src/parsers/scriptSetupRanges.ts @@ -44,7 +44,14 @@ export function parseScriptSetupRanges( // fix https://github.com/vuejs/language-tools/issues/1223 && !ts.isImportEqualsDeclaration(node) ) { - importSectionEndOffset = node.getStart(ast, true); + const commentRagnes = ts.getLeadingCommentRanges(ast.getFullText(), node.getFullStart()); + if (commentRagnes?.length) { + const commentRange = commentRagnes.sort((a, b) => a.pos - b.pos)[0]; + importSectionEndOffset = commentRange.pos; + } + else { + importSectionEndOffset = node.getStart(ast); + } foundNonImportExportNode = true; } }); diff --git a/packages/vue-test-workspace/vue-tsc/non-strict-template/#3327/import.vue b/packages/vue-test-workspace/vue-tsc/non-strict-template/#3327/import.vue new file mode 100644 index 000000000..72873e7d1 --- /dev/null +++ b/packages/vue-test-workspace/vue-tsc/non-strict-template/#3327/import.vue @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/packages/vue-test-workspace/vue-tsc/non-strict-template/#3327/main.vue b/packages/vue-test-workspace/vue-tsc/non-strict-template/#3327/main.vue new file mode 100644 index 000000000..1b0431856 --- /dev/null +++ b/packages/vue-test-workspace/vue-tsc/non-strict-template/#3327/main.vue @@ -0,0 +1,4 @@ +