diff --git a/packages/vue-tsc/src/proxy.ts b/packages/vue-tsc/src/proxy.ts index 5ddeb67c6..a3a95ea89 100644 --- a/packages/vue-tsc/src/proxy.ts +++ b/packages/vue-tsc/src/proxy.ts @@ -43,7 +43,7 @@ export function createProgramProxy( getCssVBindRanges: () => [], vueCompilerOptions, vueLsHost: vueLsHost, - isTsPlugin: false, + isVueTsc: true, }); const tsProgram = tsRuntime.getTsLs('script').getProgram(); if (!tsProgram) throw '!tsProgram'; diff --git a/packages/vue-typescript/src/typescriptRuntime.ts b/packages/vue-typescript/src/typescriptRuntime.ts index 883117bc0..b1bf84135 100644 --- a/packages/vue-typescript/src/typescriptRuntime.ts +++ b/packages/vue-typescript/src/typescriptRuntime.ts @@ -26,6 +26,7 @@ export function createTypeScriptRuntime(options: { getCssClasses: (cssEmbeddeFile: EmbeddedFile) => Record, vueLsHost: LanguageServiceHost, isTsPlugin?: boolean, + isVueTsc?: boolean, }) { const { typescript: ts } = options; @@ -247,7 +248,11 @@ export function createTypeScriptRuntime(options: { return fileVersions.get(maped.embedded.file)!; } else { - const version = ts.sys.createHash?.(maped.embedded.file.content) ?? maped.embedded.file.content; + let version = ts.sys.createHash?.(maped.embedded.file.content) ?? maped.embedded.file.content; + if (options.isVueTsc) { + // fix https://github.com/johnsoncodehk/volar/issues/1082 + version = maped.vueFile.getVersion() + ':' + version; + } fileVersions.set(maped.embedded.file, version); return version; }