From c51f915fd5be92a24275ba0bfc5a7c785af8f29a Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Wed, 20 Mar 2024 08:47:28 +0800 Subject: [PATCH] fix tests --- packages/language-service/index.ts | 1 + packages/typescript-plugin/lib/common.ts | 2 +- .../lib/requests/collectExtractProps.ts | 5 ++-- .../lib/requests/componentInfos.ts | 25 +++++++++++-------- .../lib/requests/getPropertiesAtLocation.ts | 5 ++-- packages/typescript-plugin/lib/server.ts | 1 + .../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 +- 10 files changed, 28 insertions(+), 19 deletions(-) diff --git a/packages/language-service/index.ts b/packages/language-service/index.ts index ef4a049fd7..9e8e9ae624 100644 --- a/packages/language-service/index.ts +++ b/packages/language-service/index.ts @@ -71,6 +71,7 @@ export function createVueServicePlugins( languageService: context.inject<(import('volar-service-typescript').Provide), 'typescript/languageService'>('typescript/languageService'), vueOptions: getVueOptions(context.env), isTsPlugin: false, + getFileId: context.env.typescript!.fileNameToUri, }; return { async collectExtractProps(...args) { diff --git a/packages/typescript-plugin/lib/common.ts b/packages/typescript-plugin/lib/common.ts index c75ea86354..15567245f8 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 9ef7b01317..96bf039764 100644 --- a/packages/typescript-plugin/lib/requests/collectExtractProps.ts +++ b/packages/typescript-plugin/lib/requests/collectExtractProps.ts @@ -7,13 +7,14 @@ export function collectExtractProps( languageService: ts.LanguageService; files: FileRegistry; isTsPlugin: boolean, + getFileId: (fileName: string) => string, }, fileName: string, templateCodeRange: [number, number], ) { - const { typescript: ts, languageService, files, isTsPlugin } = this; + const { typescript: ts, languageService, files, isTsPlugin, getFileId } = this; - const volarFile = files.get(fileName); + const volarFile = files.get(getFileId(fileName)); 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 d69f174326..e7eccff4dc 100644 --- a/packages/typescript-plugin/lib/requests/componentInfos.ts +++ b/packages/typescript-plugin/lib/requests/componentInfos.ts @@ -8,13 +8,14 @@ export function getComponentProps( languageService: ts.LanguageService; files: vue.FileRegistry; vueOptions: vue.VueCompilerOptions, + getFileId: (fileName: string) => string, }, fileName: string, tag: string, requiredOnly = false, ) { - const { typescript: ts, files, vueOptions, languageService } = this; - const volarFile = files.get(fileName); + const { typescript: ts, files, vueOptions, languageService, getFileId } = this; + const volarFile = files.get(getFileId(fileName)); if (!(volarFile?.generated?.code instanceof vue.VueGeneratedCode)) { return; } @@ -96,12 +97,13 @@ export function getComponentEvents( languageService: ts.LanguageService; files: vue.FileRegistry; vueOptions: vue.VueCompilerOptions, + getFileId: (fileName: string) => string, }, fileName: string, tag: string, ) { - const { typescript: ts, files, vueOptions, languageService } = this; - const volarFile = files.get(fileName); + const { typescript: ts, files, vueOptions, languageService, getFileId } = this; + const volarFile = files.get(getFileId(fileName)); if (!(volarFile?.generated?.code instanceof vue.VueGeneratedCode)) { return; } @@ -176,11 +178,12 @@ export function getTemplateContextProps( typescript: typeof import('typescript'); languageService: ts.LanguageService; files: vue.FileRegistry; + getFileId: (fileName: string) => string, }, fileName: string, ) { - const { typescript: ts, files, languageService } = this; - const volarFile = files.get(fileName); + const { typescript: ts, files, languageService, getFileId } = this; + const volarFile = files.get(getFileId(fileName)); if (!(volarFile?.generated?.code instanceof vue.VueGeneratedCode)) { return; } @@ -198,11 +201,12 @@ export function getComponentNames( languageService: ts.LanguageService; files: vue.FileRegistry; vueOptions: vue.VueCompilerOptions, + getFileId: (fileName: string) => string, }, fileName: string, ) { - const { typescript: ts, files, vueOptions, languageService } = this; - const volarFile = files.get(fileName); + const { typescript: ts, files, vueOptions, languageService, getFileId } = this; + const volarFile = files.get(getFileId(fileName)); if (!(volarFile?.generated?.code instanceof vue.VueGeneratedCode)) { return; } @@ -237,12 +241,13 @@ export function getElementAttrs( typescript: typeof import('typescript'); languageService: ts.LanguageService; files: vue.FileRegistry; + getFileId: (fileName: string) => string, }, fileName: string, tagName: string, ) { - const { typescript: ts, files, languageService } = this; - const volarFile = files.get(fileName); + const { typescript: ts, files, languageService, getFileId } = this; + const volarFile = files.get(getFileId(fileName)); 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 43a2eba3c8..a034c71d56 100644 --- a/packages/typescript-plugin/lib/requests/getPropertiesAtLocation.ts +++ b/packages/typescript-plugin/lib/requests/getPropertiesAtLocation.ts @@ -7,14 +7,15 @@ export function getPropertiesAtLocation( languageService: ts.LanguageService; files: FileRegistry; isTsPlugin: boolean, + getFileId: (fileName: string) => string, }, fileName: string, position: number, ) { - const { languageService, files, typescript: ts, isTsPlugin } = this; + const { languageService, files, typescript: ts, isTsPlugin, getFileId } = this; // mapping - const file = files.get(fileName); + const file = files.get(getFileId(fileName)); if (file?.generated) { const virtualScript = file.generated.languagePlugin.typescript?.getScript(file.generated.code); if (!virtualScript) { diff --git a/packages/typescript-plugin/lib/server.ts b/packages/typescript-plugin/lib/server.ts index 521a84efa3..a5bb025653 100644 --- a/packages/typescript-plugin/lib/server.ts +++ b/packages/typescript-plugin/lib/server.ts @@ -50,6 +50,7 @@ export function startNamedPipeServer( files: project.files, vueOptions: project.vueOptions, isTsPlugin: true, + getFileId: (fileName: string) => fileName, }; if (request.type === 'containsFile') { const result = !!getProject(fileName); diff --git a/test-workspace/language-service/complete/#2511/input/entry.vue b/test-workspace/language-service/complete/#2511/input/entry.vue index 3720634d8c..8f093eed73 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 f8ba73815f..223cf4517a 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 c60258d8c7..dac432aed0 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 25cf2f4ef7..1072e574b6 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';