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';
-
+