From ee58d3563ef883e14773f18558d246ac99915b9f Mon Sep 17 00:00:00 2001 From: johnsoncodehk Date: Mon, 21 Mar 2022 22:20:14 +0800 Subject: [PATCH] fix: organize imports code action edge range incorrect close #1091 --- .../src/languageFuatures/codeActionResolve.ts | 7 ++++++- .../src/languageFuatures/codeActions.ts | 7 ++++++- .../src/languageFuatures/fileRename.ts | 1 - .../src/languageFuatures/rename.ts | 10 ++++++---- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/packages/vue-language-service/src/languageFuatures/codeActionResolve.ts b/packages/vue-language-service/src/languageFuatures/codeActionResolve.ts index a60501f22..84e4946d5 100644 --- a/packages/vue-language-service/src/languageFuatures/codeActionResolve.ts +++ b/packages/vue-language-service/src/languageFuatures/codeActionResolve.ts @@ -30,7 +30,12 @@ export function register(context: LanguageServiceRuntimeContext) { if (resolvedItem.edit) { - const edit = embeddedEditToSourceEdit(sourceMap.embeddedFile.lsType, false, resolvedItem.edit, context.vueDocuments, () => true); + const edit = embeddedEditToSourceEdit( + sourceMap.embeddedFile.lsType, + false, + resolvedItem.edit, + context.vueDocuments, + ); if (edit) { resolvedItem.edit = edit; diff --git a/packages/vue-language-service/src/languageFuatures/codeActions.ts b/packages/vue-language-service/src/languageFuatures/codeActions.ts index 6014e2fa3..84d14f17d 100644 --- a/packages/vue-language-service/src/languageFuatures/codeActions.ts +++ b/packages/vue-language-service/src/languageFuatures/codeActions.ts @@ -101,7 +101,12 @@ export function register(context: LanguageServiceRuntimeContext) { return _codeAction; if (_codeAction.edit) { - const edit = embeddedEditToSourceEdit(sourceMap.embeddedFile.lsType, false, _codeAction.edit, context.vueDocuments, () => true); + const edit = embeddedEditToSourceEdit( + sourceMap.embeddedFile.lsType, + false, + _codeAction.edit, + context.vueDocuments, + ); if (edit) { _codeAction.edit = edit; return _codeAction; diff --git a/packages/vue-language-service/src/languageFuatures/fileRename.ts b/packages/vue-language-service/src/languageFuatures/fileRename.ts index c3b4d3e49..47cd05103 100644 --- a/packages/vue-language-service/src/languageFuatures/fileRename.ts +++ b/packages/vue-language-service/src/languageFuatures/fileRename.ts @@ -28,7 +28,6 @@ export function register(context: LanguageServiceRuntimeContext) { false, workspaceEdit, context.vueDocuments, - data => typeof data.capabilities.rename === 'object' ? data.capabilities.rename.out : !!data.capabilities.rename, ) } } diff --git a/packages/vue-language-service/src/languageFuatures/rename.ts b/packages/vue-language-service/src/languageFuatures/rename.ts index c2d192089..5d31bb4d6 100644 --- a/packages/vue-language-service/src/languageFuatures/rename.ts +++ b/packages/vue-language-service/src/languageFuatures/rename.ts @@ -138,7 +138,6 @@ export function register(context: LanguageServiceRuntimeContext) { sourceMap?.embeddedFile.lsType === 'template' && renameFromScriptContent, data, context.vueDocuments, - data => typeof data.capabilities.rename === 'object' ? data.capabilities.rename.out : !!data.capabilities.rename, ); }, (workspaceEdits) => { @@ -207,7 +206,6 @@ export function embeddedEditToSourceEdit( ignoreScriptLsResult: boolean, tsResult: vscode.WorkspaceEdit, vueDocuments: VueDocuments, - isValidMapping: (data: EmbeddedFileMappingData) => boolean, ) { const vueResult: vscode.WorkspaceEdit = {}; @@ -230,7 +228,7 @@ export function embeddedEditToSourceEdit( tsUri, tsEdit.range.start, tsEdit.range.end, - isValidMapping, + data => typeof data.capabilities.rename === 'object' ? data.capabilities.rename.out : !!data.capabilities.rename, // fix https://github.com/johnsoncodehk/volar/issues/1091 )) { if (ignoreScriptLsResult) { @@ -277,7 +275,11 @@ export function embeddedEditToSourceEdit( [], ); for (const tsEdit of tsDocEdit.edits) { - for (const [vueRange, data] of sourceMap.getSourceRanges(tsEdit.range.start, tsEdit.range.end, isValidMapping)) { + for (const [vueRange, data] of sourceMap.getSourceRanges( + tsEdit.range.start, + tsEdit.range.end, + data => typeof data.capabilities.rename === 'object' ? data.capabilities.rename.out : !!data.capabilities.rename, // fix https://github.com/johnsoncodehk/volar/issues/1091 + )) { if (ignoreScriptLsResult && !(data.vueTag === 'template' || data.vueTag === 'style')) { continue;