From 36d7bf69305499c00f848bf748e99c0217775f6a Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Wed, 20 Mar 2024 08:19:01 +0800 Subject: [PATCH] fix tests --- .../lib/plugins/vue-autoinsert-dotvalue.ts | 2 +- .../lib/plugins/vue-extract-file.ts | 2 +- .../lib/plugins/vue-template.ts | 7 +++---- packages/typescript-plugin/lib/common.ts | 2 +- .../lib/requests/collectExtractProps.ts | 3 ++- .../lib/requests/componentInfos.ts | 19 ++++++++++--------- .../lib/requests/getPropertiesAtLocation.ts | 3 ++- .../complete/#2511/input/entry.vue | 2 +- .../complete/#2511/output/entry.vue | 2 +- .../component-auto-import/input/entry.vue | 2 +- .../component-auto-import/output/entry.vue | 2 +- 11 files changed, 24 insertions(+), 22 deletions(-) diff --git a/packages/language-service/lib/plugins/vue-autoinsert-dotvalue.ts b/packages/language-service/lib/plugins/vue-autoinsert-dotvalue.ts index c74838885..48e47d287 100644 --- a/packages/language-service/lib/plugins/vue-autoinsert-dotvalue.ts +++ b/packages/language-service/lib/plugins/vue-autoinsert-dotvalue.ts @@ -84,7 +84,7 @@ export function create( return; } - const props = await tsPluginClient?.getPropertiesAtLocation(fileName, sourceCodeOffset) ?? []; + const props = await tsPluginClient?.getPropertiesAtLocation(file.id, fileName, sourceCodeOffset) ?? []; if (props.some(prop => prop === 'value')) { return '${1:.value}'; } diff --git a/packages/language-service/lib/plugins/vue-extract-file.ts b/packages/language-service/lib/plugins/vue-extract-file.ts index 20fa13147..b42dfab3f 100644 --- a/packages/language-service/lib/plugins/vue-extract-file.ts +++ b/packages/language-service/lib/plugins/vue-extract-file.ts @@ -82,7 +82,7 @@ export function create( return codeAction; } - const toExtract = await tsPluginClient?.collectExtractProps(sourceFile.generated.code.fileName, templateCodeRange) ?? []; + const toExtract = await tsPluginClient?.collectExtractProps(sourceFile.id, sourceFile.generated.code.fileName, templateCodeRange) ?? []; if (!toExtract) { return codeAction; } diff --git a/packages/language-service/lib/plugins/vue-template.ts b/packages/language-service/lib/plugins/vue-template.ts index 58cd5673f..2d43a610b 100644 --- a/packages/language-service/lib/plugins/vue-template.ts +++ b/packages/language-service/lib/plugins/vue-template.ts @@ -463,9 +463,9 @@ export function create( if (!tagInfo) { promises.push((async () => { - const attrs = await tsPluginClient?.getElementAttrs(vueCode.fileName, tag) ?? []; - const props = await tsPluginClient?.getComponentProps(vueCode.fileName, tag) ?? []; - const events = await tsPluginClient?.getComponentEvents(vueCode.fileName, tag) ?? []; + const attrs = await tsPluginClient?.getElementAttrs(sourceDocumentUri, vueCode.fileName, tag) ?? []; + const props = await tsPluginClient?.getComponentProps(sourceDocumentUri, tag) ?? []; + const events = await tsPluginClient?.getComponentEvents(sourceDocumentUri, tag) ?? []; tagInfos.set(tag, { attrs, props, @@ -740,7 +740,6 @@ export function create( updateExtraCustomData([]); } - async function initialize() { customData = await getHtmlCustomData(); } diff --git a/packages/typescript-plugin/lib/common.ts b/packages/typescript-plugin/lib/common.ts index c75ea8635..15567245f 100644 --- a/packages/typescript-plugin/lib/common.ts +++ b/packages/typescript-plugin/lib/common.ts @@ -32,7 +32,7 @@ export function decorateLanguageServiceForVue( for (const ext of vueOptions.extensions) { const suffix = capitalize(ext.substring('.'.length)); // .vue -> Vue if (item.source.endsWith(ext) && item.name.endsWith(suffix)) { - item.name = item.name.slice(0, -suffix.length); + item.name = capitalize(item.name.slice(0, -suffix.length)); if (item.insertText) { // #2286 item.insertText = item.insertText.replace(`${suffix}$1`, '$1'); diff --git a/packages/typescript-plugin/lib/requests/collectExtractProps.ts b/packages/typescript-plugin/lib/requests/collectExtractProps.ts index 9ef7b0131..f72ee0023 100644 --- a/packages/typescript-plugin/lib/requests/collectExtractProps.ts +++ b/packages/typescript-plugin/lib/requests/collectExtractProps.ts @@ -8,12 +8,13 @@ export function collectExtractProps( files: FileRegistry; isTsPlugin: boolean, }, + fileId: string, fileName: string, templateCodeRange: [number, number], ) { const { typescript: ts, languageService, files, isTsPlugin } = this; - const volarFile = files.get(fileName); + const volarFile = files.get(fileId); if (!(volarFile?.generated?.code instanceof VueGeneratedCode)) { return; } diff --git a/packages/typescript-plugin/lib/requests/componentInfos.ts b/packages/typescript-plugin/lib/requests/componentInfos.ts index d69f17432..bfb857a70 100644 --- a/packages/typescript-plugin/lib/requests/componentInfos.ts +++ b/packages/typescript-plugin/lib/requests/componentInfos.ts @@ -9,12 +9,12 @@ export function getComponentProps( files: vue.FileRegistry; vueOptions: vue.VueCompilerOptions, }, - fileName: string, + fileId: string, tag: string, requiredOnly = false, ) { const { typescript: ts, files, vueOptions, languageService } = this; - const volarFile = files.get(fileName); + const volarFile = files.get(fileId); if (!(volarFile?.generated?.code instanceof vue.VueGeneratedCode)) { return; } @@ -97,11 +97,11 @@ export function getComponentEvents( files: vue.FileRegistry; vueOptions: vue.VueCompilerOptions, }, - fileName: string, + fileId: string, tag: string, ) { const { typescript: ts, files, vueOptions, languageService } = this; - const volarFile = files.get(fileName); + const volarFile = files.get(fileId); if (!(volarFile?.generated?.code instanceof vue.VueGeneratedCode)) { return; } @@ -177,10 +177,10 @@ export function getTemplateContextProps( languageService: ts.LanguageService; files: vue.FileRegistry; }, - fileName: string, + fileId: string, ) { const { typescript: ts, files, languageService } = this; - const volarFile = files.get(fileName); + const volarFile = files.get(fileId); if (!(volarFile?.generated?.code instanceof vue.VueGeneratedCode)) { return; } @@ -199,10 +199,10 @@ export function getComponentNames( files: vue.FileRegistry; vueOptions: vue.VueCompilerOptions, }, - fileName: string, + fileId: string, ) { const { typescript: ts, files, vueOptions, languageService } = this; - const volarFile = files.get(fileName); + const volarFile = files.get(fileId); if (!(volarFile?.generated?.code instanceof vue.VueGeneratedCode)) { return; } @@ -238,11 +238,12 @@ export function getElementAttrs( languageService: ts.LanguageService; files: vue.FileRegistry; }, + fileId: string, fileName: string, tagName: string, ) { const { typescript: ts, files, languageService } = this; - const volarFile = files.get(fileName); + const volarFile = files.get(fileId); if (!(volarFile?.generated?.code instanceof vue.VueGeneratedCode)) { return; } diff --git a/packages/typescript-plugin/lib/requests/getPropertiesAtLocation.ts b/packages/typescript-plugin/lib/requests/getPropertiesAtLocation.ts index 43a2eba3c..df2717769 100644 --- a/packages/typescript-plugin/lib/requests/getPropertiesAtLocation.ts +++ b/packages/typescript-plugin/lib/requests/getPropertiesAtLocation.ts @@ -8,13 +8,14 @@ export function getPropertiesAtLocation( files: FileRegistry; isTsPlugin: boolean, }, + fileId: string, fileName: string, position: number, ) { const { languageService, files, typescript: ts, isTsPlugin } = this; // mapping - const file = files.get(fileName); + const file = files.get(fileId); if (file?.generated) { const virtualScript = file.generated.languagePlugin.typescript?.getScript(file.generated.code); if (!virtualScript) { diff --git a/test-workspace/language-service/complete/#2511/input/entry.vue b/test-workspace/language-service/complete/#2511/input/entry.vue index 3720634d8..8f093eed7 100644 --- a/test-workspace/language-service/complete/#2511/input/entry.vue +++ b/test-workspace/language-service/complete/#2511/input/entry.vue @@ -1,4 +1,4 @@ diff --git a/test-workspace/language-service/complete/#2511/output/entry.vue b/test-workspace/language-service/complete/#2511/output/entry.vue index f8ba73815..223cf4517 100644 --- a/test-workspace/language-service/complete/#2511/output/entry.vue +++ b/test-workspace/language-service/complete/#2511/output/entry.vue @@ -1,4 +1,4 @@ diff --git a/test-workspace/language-service/complete/component-auto-import/input/entry.vue b/test-workspace/language-service/complete/component-auto-import/input/entry.vue index c60258d8c..dac432aed 100644 --- a/test-workspace/language-service/complete/component-auto-import/input/entry.vue +++ b/test-workspace/language-service/complete/component-auto-import/input/entry.vue @@ -3,5 +3,5 @@ diff --git a/test-workspace/language-service/complete/component-auto-import/output/entry.vue b/test-workspace/language-service/complete/component-auto-import/output/entry.vue index 25cf2f4ef..1072e574b 100644 --- a/test-workspace/language-service/complete/component-auto-import/output/entry.vue +++ b/test-workspace/language-service/complete/component-auto-import/output/entry.vue @@ -5,5 +5,5 @@ import ComponentForAutoImport from './component-for-auto-import.vue';