From 34a0b20133fd5d6928e84cb1170e548d9aeb6a44 Mon Sep 17 00:00:00 2001 From: johnsoncodehk Date: Sun, 23 Oct 2022 03:52:58 +0800 Subject: [PATCH] fix: catch cancel error for component auto import resolve close #1983 --- .../src/plugins/vue-template.ts | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/vue-language-tools/vue-language-service/src/plugins/vue-template.ts b/vue-language-tools/vue-language-service/src/plugins/vue-template.ts index 86c6da17d..b285b0432 100644 --- a/vue-language-tools/vue-language-service/src/plugins/vue-template.ts +++ b/vue-language-tools/vue-language-service/src/plugins/vue-template.ts @@ -358,27 +358,30 @@ export default function useVueTemplateLanguagePlugin confitHost?.getConfiguration(section, scopeUri) as any, embeddedScriptUri), - getUserPreferences((section, scopeUri) => confitHost?.getConfiguration(section, scopeUri) as any, embeddedScriptUri, undefined), + getFormatCodeSettings((section, scopeUri) => configHost?.getConfiguration(section, scopeUri) as any, embeddedScriptUri), + getUserPreferences((section, scopeUri) => configHost?.getConfiguration(section, scopeUri) as any, embeddedScriptUri, undefined), ]); (preferences as any).importModuleSpecifierEnding = 'minimal'; - const tsDetail = context.typescript.languageService.getCompletionEntryDetails(shared.getPathOfUri(embeddedScriptUri), 0, tsImportName, formatOptions, importFile, preferences, undefined); - if (tsDetail?.codeActions) { - for (const action of tsDetail.codeActions) { - for (const change of action.changes) { - for (const textChange of change.textChanges) { - if (textChange.newText.indexOf(`import ${tsImportName} `) >= 0) { - return { - insertText: textChange.newText.replace(`import ${tsImportName} `, `import ${componentName} `).trim(), - description: action.description, - }; + try { + const tsDetail = context.typescript.languageService.getCompletionEntryDetails(shared.getPathOfUri(embeddedScriptUri), 0, tsImportName, formatOptions, importFile, preferences, undefined); + if (tsDetail?.codeActions) { + for (const action of tsDetail.codeActions) { + for (const change of action.changes) { + for (const textChange of change.textChanges) { + if (textChange.newText.indexOf(`import ${tsImportName} `) >= 0) { + return { + insertText: textChange.newText.replace(`import ${tsImportName} `, `import ${componentName} `).trim(), + description: action.description, + }; + } } } } } } + catch { } } function getMonkeyInsert() { const anyImport = scriptSetupImport ?? scriptImport;