From 3194078ba29d0933b250c5d5715736a5b4d7ff78 Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Tue, 2 Jul 2024 21:27:06 +0800 Subject: [PATCH 01/13] fix(vscode): fix insider version display condition close https://github.com/volarjs/insiders/issues/21 --- extensions/vscode/src/common.ts | 75 +++++++++++++++------------------ 1 file changed, 35 insertions(+), 40 deletions(-) diff --git a/extensions/vscode/src/common.ts b/extensions/vscode/src/common.ts index d92031f8cb..a1339d207a 100644 --- a/extensions/vscode/src/common.ts +++ b/extensions/vscode/src/common.ts @@ -254,35 +254,24 @@ async function doActivate(context: vscode.ExtensionContext, createLc: CreateLang } const item = vscode.languages.createLanguageStatusItem('vue-insider', 'vue'); - if (!context.extension.packageJSON.version.includes('-insider')) { - item.text = '✨ Get Insiders Edition'; - item.severity = vscode.LanguageStatusSeverity.Warning; - } - else { - item.text = '🚀 Insiders Edition'; + item.text = 'Checking for Updates...'; + item.busy = true; + let succeed = false; + for (const url of [ + 'https://raw.githubusercontent.com/vuejs/language-tools/HEAD/insiders.json', + 'https://cdn.jsdelivr.net/gh/vuejs/language-tools/insiders.json', + ]) { + try { + const res = await fetch(url); + onJson(await res.json()); + succeed = true; + break; + } catch { } } - checkUpdate(); - - async function checkUpdate() { - item.detail = 'Checking for Updates...'; - item.busy = true; - let succeed = false; - for (const url of [ - 'https://raw.githubusercontent.com/vuejs/language-tools/HEAD/insiders.json', - 'https://cdn.jsdelivr.net/gh/vuejs/language-tools/insiders.json', - ]) { - try { - const res = await fetch(url); - onJson(await res.json()); - succeed = true; - break; - } catch { } - } - item.busy = false; - if (!succeed) { - item.detail = 'Failed to Fetch Versions'; - item.severity = vscode.LanguageStatusSeverity.Error; - } + item.busy = false; + if (!succeed) { + item.text = 'Failed to Fetch Versions'; + item.severity = vscode.LanguageStatusSeverity.Error; } function onJson(json: { @@ -301,19 +290,25 @@ async function doActivate(context: vscode.ExtensionContext, createLc: CreateLang title: 'Select Version', command: 'vue-insiders.update', }; - if ( - json.versions.some(version => version.version === context.extension.packageJSON.version) - && context.extension.packageJSON.version !== json.latest - ) { - item.detail = 'New Version Available!'; + if (json.versions.some(version => version.version === context.extension.packageJSON.version)) { + item.text = '🚀 Insiders Edition'; + item.severity = vscode.LanguageStatusSeverity.Information; + + if (context.extension.packageJSON.version !== json.latest) { + item.detail = 'New Version Available!'; + item.severity = vscode.LanguageStatusSeverity.Warning; + vscode.window + .showInformationMessage('New Insiders Version Available!', 'Download') + .then(download => { + if (download) { + vscode.commands.executeCommand('vue-insiders.update'); + } + }); + } + } + else { + item.text = '✨ Get Insiders Edition'; item.severity = vscode.LanguageStatusSeverity.Warning; - vscode.window - .showInformationMessage('New Insiders Version Available!', 'Download') - .then(download => { - if (download) { - vscode.commands.executeCommand('vue-insiders.update'); - } - }); } vscode.commands.registerCommand('vue-insiders.update', async () => { const quickPickItems: { [version: string]: vscode.QuickPickItem; } = {}; From 614aed706db2fa7729d30104292bff108fdae312 Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Thu, 4 Jul 2024 13:48:46 +0800 Subject: [PATCH 02/13] fix(language-service): add null handling for script tag completion items close #4520 --- .../language-service/lib/plugins/vue-sfc.ts | 29 ++++++++----------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/packages/language-service/lib/plugins/vue-sfc.ts b/packages/language-service/lib/plugins/vue-sfc.ts index 77cd43d625..9b7834aa13 100644 --- a/packages/language-service/lib/plugins/vue-sfc.ts +++ b/packages/language-service/lib/plugins/vue-sfc.ts @@ -174,15 +174,21 @@ export function create(): LanguageServicePlugin { }, async provideCompletionItems(document, position, context, token) { - const result = await htmlPluginInstance.provideCompletionItems?.(document, position, context, token) + const result = await htmlPluginInstance.provideCompletionItems?.(document, position, context, token); if (!result) { return; } - result.items = [ - ...result.items.filter(item => item.label !== '!DOCTYPE' && item.label !== 'Custom Blocks'), - createCompletionItemWithTs(result.items.find(item => item.label === 'script')!), - createCompletionItemWithTs(result.items.find(item => item.label === 'script setup')!), - ] + result.items = result.items.filter(item => item.label !== '!DOCTYPE' && item.label !== 'Custom Blocks'); + for (const scriptItem of result.items.filter(item => item.label === 'script' || item.label === 'script setup')) { + result.items.push({ + ...scriptItem, + label: scriptItem.label + ' lang="ts"', + textEdit: scriptItem.textEdit ? { + ...scriptItem.textEdit, + newText: scriptItem.textEdit.newText + ' lang="ts"', + } : undefined, + }); + } return result; }, }; @@ -198,14 +204,3 @@ export function create(): LanguageServicePlugin { } } } - -function createCompletionItemWithTs(base: vscode.CompletionItem): vscode.CompletionItem { - return { - ...base, - label: base.label + ' lang="ts"', - textEdit: { - ...base.textEdit!, - newText: base.textEdit!.newText + ' lang="ts"', - } - }; -} From 00e2fd276aa1ffaf708a23a4b6c5bb9e23a7e052 Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Thu, 4 Jul 2024 14:02:51 +0800 Subject: [PATCH 03/13] feat(language-service): support auto-complete for more preprocessing languages --- .../language-service/lib/plugins/vue-sfc.ts | 48 +++++++++++++++++-- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/packages/language-service/lib/plugins/vue-sfc.ts b/packages/language-service/lib/plugins/vue-sfc.ts index 9b7834aa13..e02ca62ad7 100644 --- a/packages/language-service/lib/plugins/vue-sfc.ts +++ b/packages/language-service/lib/plugins/vue-sfc.ts @@ -180,12 +180,50 @@ export function create(): LanguageServicePlugin { } result.items = result.items.filter(item => item.label !== '!DOCTYPE' && item.label !== 'Custom Blocks'); for (const scriptItem of result.items.filter(item => item.label === 'script' || item.label === 'script setup')) { + scriptItem.kind = 17 satisfies typeof vscode.CompletionItemKind.File; + scriptItem.detail = '.js'; + for (const lang of ['ts', 'tsx', 'jsx']) { + result.items.push({ + ...scriptItem, + detail: `.${lang}`, + kind: 17 satisfies typeof vscode.CompletionItemKind.File, + label: scriptItem.label + ' lang="' + lang + '"', + textEdit: scriptItem.textEdit ? { + ...scriptItem.textEdit, + newText: scriptItem.textEdit.newText + ' lang="' + lang + '"', + } : undefined, + }); + } + } + const styleItem = result.items.find(item => item.label === 'style'); + if (styleItem) { + styleItem.kind = 17 satisfies typeof vscode.CompletionItemKind.File; + styleItem.detail = '.css'; + for (const lang of ['css', 'scss', 'less', 'postcss']) { + result.items.push({ + ...styleItem, + kind: 17 satisfies typeof vscode.CompletionItemKind.File, + detail: lang === 'postcss' ? '.css' : `.${lang}`, + label: styleItem.label + ' lang="' + lang + '"', + textEdit: styleItem.textEdit ? { + ...styleItem.textEdit, + newText: styleItem.textEdit.newText + ' lang="' + lang + '"', + } : undefined, + }); + } + } + const templateItem = result.items.find(item => item.label === 'template'); + if (templateItem) { + templateItem.kind = 17 satisfies typeof vscode.CompletionItemKind.File; + templateItem.detail = '.html'; result.items.push({ - ...scriptItem, - label: scriptItem.label + ' lang="ts"', - textEdit: scriptItem.textEdit ? { - ...scriptItem.textEdit, - newText: scriptItem.textEdit.newText + ' lang="ts"', + ...templateItem, + kind: 17 satisfies typeof vscode.CompletionItemKind.File, + detail: '.pug', + label: templateItem.label + ' lang="pug"', + textEdit: templateItem.textEdit ? { + ...templateItem.textEdit, + newText: templateItem.textEdit.newText + ' lang="pug"', } : undefined, }); } From c2e28c9628c97344afabb0c6fedf83febce297f5 Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Thu, 4 Jul 2024 14:07:22 +0800 Subject: [PATCH 04/13] ci: update `pnpm/action-setup` --- .github/workflows/auto-fix.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 2 +- .github/workflows/update-html-data.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/auto-fix.yml b/.github/workflows/auto-fix.yml index d1577f6bbd..541172f3fa 100644 --- a/.github/workflows/auto-fix.yml +++ b/.github/workflows/auto-fix.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7c873bbd2d..01e60841a7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0dd74156bd..219cd73f45 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 diff --git a/.github/workflows/update-html-data.yml b/.github/workflows/update-html-data.yml index edb3b03aa4..0b33c88533 100644 --- a/.github/workflows/update-html-data.yml +++ b/.github/workflows/update-html-data.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: From 73ba47618f39a5cff0b41886feb3847460a7ffe3 Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Thu, 4 Jul 2024 14:14:27 +0800 Subject: [PATCH 05/13] chore: bump Volar --- extensions/vscode/package.json | 2 +- package.json | 2 +- packages/component-meta/package.json | 2 +- packages/language-core/package.json | 4 +- packages/language-plugin-pug/package.json | 2 +- packages/language-server/package.json | 4 +- packages/language-service/package.json | 8 +- packages/tsc/package.json | 2 +- packages/typescript-plugin/package.json | 2 +- pnpm-lock.yaml | 208 +++++++++++----------- 10 files changed, 118 insertions(+), 118 deletions(-) diff --git a/extensions/vscode/package.json b/extensions/vscode/package.json index 922508b71e..30aded6e30 100644 --- a/extensions/vscode/package.json +++ b/extensions/vscode/package.json @@ -543,7 +543,7 @@ "devDependencies": { "@types/semver": "^7.5.3", "@types/vscode": "^1.82.0", - "@volar/vscode": "~2.4.0-alpha.12", + "@volar/vscode": "~2.4.0-alpha.14", "@vue/language-core": "2.0.26-alpha.2", "@vue/language-server": "2.0.26-alpha.2", "@vue/typescript-plugin": "2.0.26-alpha.2", diff --git a/package.json b/package.json index 931641738f..2cc887df8d 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@lerna-lite/publish": "latest", "@tsslint/cli": "latest", "@tsslint/config": "latest", - "@volar/language-service": "~2.4.0-alpha.12", + "@volar/language-service": "~2.4.0-alpha.14", "typescript": "latest", "vite": "latest", "vitest": "latest" diff --git a/packages/component-meta/package.json b/packages/component-meta/package.json index cfe4a91c40..00c4629e56 100644 --- a/packages/component-meta/package.json +++ b/packages/component-meta/package.json @@ -12,7 +12,7 @@ "directory": "packages/component-meta" }, "dependencies": { - "@volar/typescript": "~2.4.0-alpha.12", + "@volar/typescript": "~2.4.0-alpha.14", "@vue/language-core": "2.0.26-alpha.2", "path-browserify": "^1.0.1", "vue-component-type-helpers": "2.0.26-alpha.2" diff --git a/packages/language-core/package.json b/packages/language-core/package.json index 8136d26a6f..6392d8cbbe 100644 --- a/packages/language-core/package.json +++ b/packages/language-core/package.json @@ -12,7 +12,7 @@ "directory": "packages/language-core" }, "dependencies": { - "@volar/language-core": "~2.4.0-alpha.12", + "@volar/language-core": "~2.4.0-alpha.14", "@vue/compiler-dom": "^3.4.0", "@vue/shared": "^3.4.0", "computeds": "^0.0.1", @@ -25,7 +25,7 @@ "@types/minimatch": "^5.1.2", "@types/node": "latest", "@types/path-browserify": "^1.0.1", - "@volar/typescript": "~2.4.0-alpha.12", + "@volar/typescript": "~2.4.0-alpha.14", "@vue/compiler-sfc": "^3.4.0" }, "peerDependencies": { diff --git a/packages/language-plugin-pug/package.json b/packages/language-plugin-pug/package.json index e6653e79f8..95b4947632 100644 --- a/packages/language-plugin-pug/package.json +++ b/packages/language-plugin-pug/package.json @@ -16,7 +16,7 @@ "@vue/language-core": "2.0.26-alpha.2" }, "dependencies": { - "@volar/source-map": "~2.4.0-alpha.12", + "@volar/source-map": "~2.4.0-alpha.14", "volar-service-pug": "volar-2.4" } } diff --git a/packages/language-server/package.json b/packages/language-server/package.json index f14226577f..05ee3a7598 100644 --- a/packages/language-server/package.json +++ b/packages/language-server/package.json @@ -15,8 +15,8 @@ "directory": "packages/language-server" }, "dependencies": { - "@volar/language-core": "~2.4.0-alpha.12", - "@volar/language-server": "~2.4.0-alpha.12", + "@volar/language-core": "~2.4.0-alpha.14", + "@volar/language-server": "~2.4.0-alpha.14", "@vue/language-core": "2.0.26-alpha.2", "@vue/language-service": "2.0.26-alpha.2", "@vue/typescript-plugin": "2.0.26-alpha.2", diff --git a/packages/language-service/package.json b/packages/language-service/package.json index 85446ed6f0..019189d611 100644 --- a/packages/language-service/package.json +++ b/packages/language-service/package.json @@ -16,9 +16,9 @@ "update-html-data": "node ./scripts/update-html-data.js" }, "dependencies": { - "@volar/language-core": "~2.4.0-alpha.12", - "@volar/language-service": "~2.4.0-alpha.12", - "@volar/typescript": "~2.4.0-alpha.12", + "@volar/language-core": "~2.4.0-alpha.14", + "@volar/language-service": "~2.4.0-alpha.14", + "@volar/typescript": "~2.4.0-alpha.14", "@vue/compiler-dom": "^3.4.0", "@vue/language-core": "2.0.26-alpha.2", "@vue/shared": "^3.4.0", @@ -40,7 +40,7 @@ "devDependencies": { "@types/node": "latest", "@types/path-browserify": "latest", - "@volar/kit": "~2.4.0-alpha.12", + "@volar/kit": "~2.4.0-alpha.14", "vscode-languageserver-protocol": "^3.17.5" } } diff --git a/packages/tsc/package.json b/packages/tsc/package.json index 2a68e688b6..891fe921ef 100644 --- a/packages/tsc/package.json +++ b/packages/tsc/package.json @@ -16,7 +16,7 @@ "vue-tsc": "./bin/vue-tsc.js" }, "dependencies": { - "@volar/typescript": "~2.4.0-alpha.12", + "@volar/typescript": "~2.4.0-alpha.14", "@vue/language-core": "2.0.26-alpha.2", "semver": "^7.5.4" }, diff --git a/packages/typescript-plugin/package.json b/packages/typescript-plugin/package.json index 22179da3e4..80de1b1645 100644 --- a/packages/typescript-plugin/package.json +++ b/packages/typescript-plugin/package.json @@ -12,7 +12,7 @@ "directory": "packages/typescript-plugin" }, "dependencies": { - "@volar/typescript": "~2.4.0-alpha.12", + "@volar/typescript": "~2.4.0-alpha.14", "@vue/language-core": "2.0.26-alpha.2", "@vue/shared": "^3.4.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7b3750ca8e..801042284c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,8 +24,8 @@ importers: specifier: latest version: 1.0.13 '@volar/language-service': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.14 + version: 2.4.0-alpha.14 typescript: specifier: latest version: 5.5.3 @@ -45,8 +45,8 @@ importers: specifier: ^1.82.0 version: 1.90.0 '@volar/vscode': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.14 + version: 2.4.0-alpha.14 '@vue/language-core': specifier: 2.0.26-alpha.2 version: link:../../packages/language-core @@ -75,8 +75,8 @@ importers: packages/component-meta: dependencies: '@volar/typescript': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.14 + version: 2.4.0-alpha.14 '@vue/language-core': specifier: 2.0.26-alpha.2 version: link:../language-core @@ -102,8 +102,8 @@ importers: packages/language-core: dependencies: '@volar/language-core': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.14 + version: 2.4.0-alpha.14 '@vue/compiler-dom': specifier: ^3.4.0 version: 3.4.31 @@ -139,8 +139,8 @@ importers: specifier: ^1.0.1 version: 1.0.2 '@volar/typescript': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.14 + version: 2.4.0-alpha.14 '@vue/compiler-sfc': specifier: ^3.4.0 version: 3.4.31 @@ -148,11 +148,11 @@ importers: packages/language-plugin-pug: dependencies: '@volar/source-map': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.14 + version: 2.4.0-alpha.14 volar-service-pug: specifier: volar-2.4 - version: 0.0.58 + version: 0.0.59 devDependencies: '@types/node': specifier: latest @@ -164,11 +164,11 @@ importers: packages/language-server: dependencies: '@volar/language-core': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.14 + version: 2.4.0-alpha.14 '@volar/language-server': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.14 + version: 2.4.0-alpha.14 '@vue/language-core': specifier: 2.0.26-alpha.2 version: link:../language-core @@ -188,14 +188,14 @@ importers: packages/language-service: dependencies: '@volar/language-core': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.14 + version: 2.4.0-alpha.14 '@volar/language-service': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.14 + version: 2.4.0-alpha.14 '@volar/typescript': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.14 + version: 2.4.0-alpha.14 '@vue/compiler-dom': specifier: ^3.4.0 version: 3.4.31 @@ -216,28 +216,28 @@ importers: version: 1.0.1 volar-service-css: specifier: volar-2.4 - version: 0.0.58(@volar/language-service@2.4.0-alpha.12) + version: 0.0.59(@volar/language-service@2.4.0-alpha.14) volar-service-emmet: specifier: volar-2.4 - version: 0.0.58(@volar/language-service@2.4.0-alpha.12) + version: 0.0.59(@volar/language-service@2.4.0-alpha.14) volar-service-html: specifier: volar-2.4 - version: 0.0.58(@volar/language-service@2.4.0-alpha.12) + version: 0.0.59(@volar/language-service@2.4.0-alpha.14) volar-service-json: specifier: volar-2.4 - version: 0.0.58(@volar/language-service@2.4.0-alpha.12) + version: 0.0.59(@volar/language-service@2.4.0-alpha.14) volar-service-pug: specifier: volar-2.4 - version: 0.0.58 + version: 0.0.59 volar-service-pug-beautify: specifier: volar-2.4 - version: 0.0.58(@volar/language-service@2.4.0-alpha.12) + version: 0.0.59(@volar/language-service@2.4.0-alpha.14) volar-service-typescript: specifier: volar-2.4 - version: 0.0.58(@volar/language-service@2.4.0-alpha.12) + version: 0.0.59(@volar/language-service@2.4.0-alpha.14) volar-service-typescript-twoslash-queries: specifier: volar-2.4 - version: 0.0.58(@volar/language-service@2.4.0-alpha.12) + version: 0.0.59(@volar/language-service@2.4.0-alpha.14) vscode-html-languageservice: specifier: ^5.2.0 version: 5.3.0 @@ -255,8 +255,8 @@ importers: specifier: latest version: 1.0.2 '@volar/kit': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12(typescript@5.5.3) + specifier: ~2.4.0-alpha.14 + version: 2.4.0-alpha.14(typescript@5.5.3) vscode-languageserver-protocol: specifier: ^3.17.5 version: 3.17.5 @@ -264,8 +264,8 @@ importers: packages/tsc: dependencies: '@volar/typescript': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.14 + version: 2.4.0-alpha.14 '@vue/language-core': specifier: 2.0.26-alpha.2 version: link:../language-core @@ -283,8 +283,8 @@ importers: packages/typescript-plugin: dependencies: '@volar/typescript': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.14 + version: 2.4.0-alpha.14 '@vue/language-core': specifier: 2.0.26-alpha.2 version: link:../language-core @@ -857,31 +857,31 @@ packages: '@vitest/utils@1.6.0': resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} - '@volar/kit@2.4.0-alpha.12': - resolution: {integrity: sha512-PPZsZGoj5tdK7Jf6Y/HMjS0cJrRIClyJPX1ehVLhz1zQe08gxzunBdD/i6U7u/OAYKLAY2TzOnVPFJ5iYBYC7A==} + '@volar/kit@2.4.0-alpha.14': + resolution: {integrity: sha512-DTT4rETJAgvqVnnPlYfnGLEvUPewXtOf93Swle9BwQ/GapQlQf0Mi0ozhbPABRmuJidSo0kKLHydoIA9SkR7RA==} peerDependencies: typescript: '*' - '@volar/language-core@2.4.0-alpha.12': - resolution: {integrity: sha512-Dj9qTifcGGgzFLfMbU5dCo13kHyNuEyvPJhtWDnoVBBmgwW3GMwFmgWnNxBhjf63m5x0gux1okaxX2CLN7qSww==} + '@volar/language-core@2.4.0-alpha.14': + resolution: {integrity: sha512-R6eJcUKo/KftaWHwJrWjBgj/+vW9g4xTByVQEK3IHTciMKmomoSbxaNqolu1/sJKbH9Tdg0EAqTFqIzKU9iQHw==} - '@volar/language-server@2.4.0-alpha.12': - resolution: {integrity: sha512-GRzN4Sa8ANv+6o2WZxg/KHnWvJEtH6VIgLXTWv5Rsihs/PZw5Xz6/s4cWuIU4xfsqv9rjkogaTc26L9ZiD+HpQ==} + '@volar/language-server@2.4.0-alpha.14': + resolution: {integrity: sha512-5Ys8qzGhvFbSmkugLBRq3cBTKpi6hPb6oME6M+mz2ViE+vxrGTfjKp9X5JwLQI39+mJy9LJTfdPAbRB/Ud1OhA==} - '@volar/language-service@2.4.0-alpha.12': - resolution: {integrity: sha512-R6MQ/qOlKqBvc7LmdV+K/f64uuAa5zJpyYHpKLzuR0y4iKvWKblxwzggumII6XLBGFwkgMoW3v2RIIz1WXxTqg==} + '@volar/language-service@2.4.0-alpha.14': + resolution: {integrity: sha512-ECTStlV1v71+W1SlsYB6d1S9K6zmk7k8h8tdUopA7+iEMlD1paJX0BW/xEgeUeXCmxbJZ0kxa00sts8D8YWwlg==} - '@volar/snapshot-document@2.4.0-alpha.12': - resolution: {integrity: sha512-3wmiXJFBCPRTxLOMJ8KpFptSka0MxJV1FXojjLQnnW+VIOCdc25YKyh3jaRX4v6MzxmSRKp6c6g3pM44l/V5LQ==} + '@volar/snapshot-document@2.4.0-alpha.14': + resolution: {integrity: sha512-+okJY3ahb+uABvQiSDywZ26BVrGXhY1N8OL05ElXTaMsKr8w9CC6X6ta15kJRb7V3bWyp4J9mlNzYtSzdRC4QQ==} - '@volar/source-map@2.4.0-alpha.12': - resolution: {integrity: sha512-LXATFSj4D7T9sEm7FFj6iBgHjKjrdhAgRPcechVKiNCMQdr3r3GVkkeu8aM+1peaMH3LsCqoDxVZEmh2r7CHiw==} + '@volar/source-map@2.4.0-alpha.14': + resolution: {integrity: sha512-ACOsoDKvW29BIfdfnvQkm8S1m/RLARuHL9x7qS/9c6liMl1K0Y3RqXuC42HhWrWBm4hk0UyRKgdnv2R0teXPvg==} - '@volar/typescript@2.4.0-alpha.12': - resolution: {integrity: sha512-mLg+OQauMTv/+08a7WBWJo1sev/wc8t2is0zhBZIlFU+j5mG89FM4+4089c2p/zoUFZ400Q/VNg2BPfhpZ8wSA==} + '@volar/typescript@2.4.0-alpha.14': + resolution: {integrity: sha512-FQtQruOc7qQwcq5Q666pxF6ekRqZG5ILL3sS40Oac1V69QdAZ7q+IOQ2+z6SHJDENY49ygBv0hN9HrxRLtk15Q==} - '@volar/vscode@2.4.0-alpha.12': - resolution: {integrity: sha512-imw8tk5N0JYxO865azLacv8Y4E8AbpNqGgwPAJVq6BPyL1+C9Bj1K816/Yv+ZztHAdZrkhBTxEFjmU5uoe1toQ==} + '@volar/vscode@2.4.0-alpha.14': + resolution: {integrity: sha512-W1WRR8Xnm+AZlpmJcs1SkqhZ0yk/9tyOU8GwTK0TWoTTgfJGDKRap0vusbgKwBV7w82bS+fCEBctkkH2G1Homg==} '@vscode/emmet-helper@2.9.3': resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} @@ -2870,59 +2870,59 @@ packages: jsdom: optional: true - volar-service-css@0.0.58: - resolution: {integrity: sha512-Nz8s7J/R59M7vLV74JgCFSwPGNOgsgrbJYq+XiHAW7O3eUCbM7MrHnCaW/mPaLlEgRPL9TLiWX3VO0B0D4f7iQ==} + volar-service-css@0.0.59: + resolution: {integrity: sha512-gLNjJnECbalPvQB7qeJjhkDN8sR5M3ItbVYjnyio61aHaWptIiXm/HfDahcQ2ApwmvWidkMWWegjGq5L0BENDA==} peerDependencies: '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-emmet@0.0.58: - resolution: {integrity: sha512-KYN61xp7+z80QOCbT+V2x/WONVGIN8fZ1qTkujtng78lbHVeS3JqCe1sXw20nHWddxakybib7oG8Za81GMFa1w==} + volar-service-emmet@0.0.59: + resolution: {integrity: sha512-6EynHcuMwMBETpK29TbZvIMmvzdVG+Tkokk9VWfZeI+SwDptk2tgdhEqiXXvIkqYNgbuu73Itp66lpH76cAU+Q==} peerDependencies: '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-html@0.0.58: - resolution: {integrity: sha512-X9A7iFXS/KX5Rddcg7H89Th5Eq/iAudwiv6vOSSCkw9JhLAUh4b3Lx/7SbL5MTXqgZMPDw4VqpfWXX3aML6d1Q==} + volar-service-html@0.0.59: + resolution: {integrity: sha512-hEXOsYpILDlITZxnqRLV9OepVWD63GZBsyjMxszwdzlxvGZjzbGcBBinJGGJRwFIV8djdJwnt91bkdg1V5tj6Q==} peerDependencies: '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-json@0.0.58: - resolution: {integrity: sha512-tP2cC8UAuP3RM6IZNDipK46dIdFq3MDizgMuLPPKzzAvCtrQlcTDhxknJzgMsmq92PjRTpwDZr6KDTGZknfgTQ==} + volar-service-json@0.0.59: + resolution: {integrity: sha512-LfDOQhCvUpDBjA6CP9EogO0dn1yEFbInvV3Yk4OsEdyxwWUEYPLVjDacPlVUYcjCIKQN6NcTOWbVwpg4vYjw6A==} peerDependencies: '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-pug-beautify@0.0.58: - resolution: {integrity: sha512-AoEsBiFWA1XL3NiWNMMM1hyXcRn5TSVHEMo8BfQPVz3NrGtPChHqp7XI/RX7N3b7zVSzwrajWJ+iFTUOZDE0Bg==} + volar-service-pug-beautify@0.0.59: + resolution: {integrity: sha512-SCLWHpBdgvWww3a9Vp8FX80ookozhnHx10gkKBTYW4wp7/rzEoVAPSyO7JKBwTdXmdKQv7YXfxLMVUGv0sYUKg==} peerDependencies: '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-pug@0.0.58: - resolution: {integrity: sha512-Fre9qwYaIgcGUZfzSaoXGUVNYZqYRNnsc84wBCgwtRhdgZj7jxo6b/0FKUj9Dwv8bBM+xrX1IHLQECOMOnzC7Q==} + volar-service-pug@0.0.59: + resolution: {integrity: sha512-kmch7yoqeGNlJuDzpw/YL2b89ilzBmWDd0lJbpG412/RXc3PJVA4usUK+SQHdVoF+qi5IcZL6IDxlvRiIrDgWg==} - volar-service-typescript-twoslash-queries@0.0.58: - resolution: {integrity: sha512-DDErD3sQDXx4Pf0dVYrNgYQvN8iZdToWzdu8Aaxnjg4mvxT7yaizcn+KBDtcNSy4jksOHa4ut4R7AxZJ68Fyfg==} + volar-service-typescript-twoslash-queries@0.0.59: + resolution: {integrity: sha512-skm8e6yhCIkqLwJB6S9MqT5lO9LNFuMD3dYxKpmOZs1CKbXmCZZTmLfEaD5VkJae1xdleEDZFFTHl2O5HLjOGQ==} peerDependencies: '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-typescript@0.0.58: - resolution: {integrity: sha512-r4MVuRlerFzMwpiN8VWumBULuBxcNUCURptnkCPEcypw8N0GjxPBvq5vXOTGRcukKihgY6mvgYKmJMrkQvbmtQ==} + volar-service-typescript@0.0.59: + resolution: {integrity: sha512-VCOpfiu+lUo5lapWLB5L5vmQGtwzmNWn5MueV915eku7blpphmE+Z7hCNcL1NApn7AetXWhiblv8ZhmUx/dGIA==} peerDependencies: '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: @@ -3704,25 +3704,25 @@ snapshots: loupe: 2.3.7 pretty-format: 29.7.0 - '@volar/kit@2.4.0-alpha.12(typescript@5.5.3)': + '@volar/kit@2.4.0-alpha.14(typescript@5.5.3)': dependencies: - '@volar/language-service': 2.4.0-alpha.12 - '@volar/typescript': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.14 + '@volar/typescript': 2.4.0-alpha.14 typesafe-path: 0.2.2 typescript: 5.5.3 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/language-core@2.4.0-alpha.12': + '@volar/language-core@2.4.0-alpha.14': dependencies: - '@volar/source-map': 2.4.0-alpha.12 + '@volar/source-map': 2.4.0-alpha.14 - '@volar/language-server@2.4.0-alpha.12': + '@volar/language-server@2.4.0-alpha.14': dependencies: - '@volar/language-core': 2.4.0-alpha.12 - '@volar/language-service': 2.4.0-alpha.12 - '@volar/snapshot-document': 2.4.0-alpha.12 - '@volar/typescript': 2.4.0-alpha.12 + '@volar/language-core': 2.4.0-alpha.14 + '@volar/language-service': 2.4.0-alpha.14 + '@volar/snapshot-document': 2.4.0-alpha.14 + '@volar/typescript': 2.4.0-alpha.14 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 @@ -3730,29 +3730,29 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/language-service@2.4.0-alpha.12': + '@volar/language-service@2.4.0-alpha.14': dependencies: - '@volar/language-core': 2.4.0-alpha.12 + '@volar/language-core': 2.4.0-alpha.14 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/snapshot-document@2.4.0-alpha.12': + '@volar/snapshot-document@2.4.0-alpha.14': dependencies: vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 - '@volar/source-map@2.4.0-alpha.12': {} + '@volar/source-map@2.4.0-alpha.14': {} - '@volar/typescript@2.4.0-alpha.12': + '@volar/typescript@2.4.0-alpha.14': dependencies: - '@volar/language-core': 2.4.0-alpha.12 + '@volar/language-core': 2.4.0-alpha.14 path-browserify: 1.0.1 vscode-uri: 3.0.8 - '@volar/vscode@2.4.0-alpha.12': + '@volar/vscode@2.4.0-alpha.14': dependencies: - '@volar/language-server': 2.4.0-alpha.12 + '@volar/language-server': 2.4.0-alpha.14 path-browserify: 1.0.1 vscode-languageclient: 9.0.1 vscode-nls: 5.2.0 @@ -5867,61 +5867,61 @@ snapshots: - supports-color - terser - volar-service-css@0.0.58(@volar/language-service@2.4.0-alpha.12): + volar-service-css@0.0.59(@volar/language-service@2.4.0-alpha.14): dependencies: vscode-css-languageservice: 6.3.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.14 - volar-service-emmet@0.0.58(@volar/language-service@2.4.0-alpha.12): + volar-service-emmet@0.0.59(@volar/language-service@2.4.0-alpha.14): dependencies: '@emmetio/css-parser': 0.4.0 '@emmetio/html-matcher': 1.3.0 '@vscode/emmet-helper': 2.9.3 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.14 - volar-service-html@0.0.58(@volar/language-service@2.4.0-alpha.12): + volar-service-html@0.0.59(@volar/language-service@2.4.0-alpha.14): dependencies: vscode-html-languageservice: 5.3.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.14 - volar-service-json@0.0.58(@volar/language-service@2.4.0-alpha.12): + volar-service-json@0.0.59(@volar/language-service@2.4.0-alpha.14): dependencies: vscode-json-languageservice: 5.4.0 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.14 - volar-service-pug-beautify@0.0.58(@volar/language-service@2.4.0-alpha.12): + volar-service-pug-beautify@0.0.59(@volar/language-service@2.4.0-alpha.14): dependencies: '@johnsoncodehk/pug-beautify': 0.2.2 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.14 - volar-service-pug@0.0.58: + volar-service-pug@0.0.59: dependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.14 muggle-string: 0.4.1 pug-lexer: 5.0.1 pug-parser: 6.0.0 - volar-service-html: 0.0.58(@volar/language-service@2.4.0-alpha.12) + volar-service-html: 0.0.59(@volar/language-service@2.4.0-alpha.14) vscode-html-languageservice: 5.3.0 vscode-languageserver-textdocument: 1.0.11 - volar-service-typescript-twoslash-queries@0.0.58(@volar/language-service@2.4.0-alpha.12): + volar-service-typescript-twoslash-queries@0.0.59(@volar/language-service@2.4.0-alpha.14): dependencies: vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.14 - volar-service-typescript@0.0.58(@volar/language-service@2.4.0-alpha.12): + volar-service-typescript@0.0.59(@volar/language-service@2.4.0-alpha.14): dependencies: path-browserify: 1.0.1 semver: 7.6.2 @@ -5930,7 +5930,7 @@ snapshots: vscode-nls: 5.2.0 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.14 vsce@2.15.0: dependencies: From 2eebf34e95e60eca057c43c386db30ac771adb70 Mon Sep 17 00:00:00 2001 From: Danila Rodichkin Date: Thu, 4 Jul 2024 10:07:48 +0300 Subject: [PATCH 06/13] fix(language-core): any in templates if first checked file was not root (#4526) --- packages/language-core/lib/languageModule.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/language-core/lib/languageModule.ts b/packages/language-core/lib/languageModule.ts index cd3fc6d4d3..f416de2e5e 100644 --- a/packages/language-core/lib/languageModule.ts +++ b/packages/language-core/lib/languageModule.ts @@ -96,11 +96,11 @@ export function createVueLanguagePlugin( createVirtualCode(scriptId, languageId, snapshot) { if (languageId === 'vue' || languageId === 'markdown' || languageId === 'html') { const fileName = asFileName(scriptId); - if (!pluginContext.globalTypesHolder && getProjectVersion() !== canonicalRootFileNamesVersion) { + if (getProjectVersion() !== canonicalRootFileNamesVersion) { canonicalRootFileNamesVersion = getProjectVersion(); - if (isRootFile(fileName)) { - pluginContext.globalTypesHolder = fileName; - } + } + if (!pluginContext.globalTypesHolder && isRootFile(fileName)) { + pluginContext.globalTypesHolder = fileName; } const fileRegistry = getFileRegistry(pluginContext.globalTypesHolder === fileName); const code = fileRegistry.get(fileName); From 134c4113b8cfe013edd286de93c7989537311686 Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Thu, 4 Jul 2024 15:36:10 +0800 Subject: [PATCH 07/13] chore: open test-workspace when launch extension in dev mode --- .vscode/launch.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index ce8dc5a2ec..7ef11b5db0 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -8,8 +8,8 @@ "request": "launch", "runtimeExecutable": "${execPath}", "args": [ - // "--disable-extensions", - "--extensionDevelopmentPath=${workspaceRoot}/extensions/vscode" + "--extensionDevelopmentPath=${workspaceRoot}/extensions/vscode", + "--folder-uri=${workspaceRoot}/test-workspace", ], "outFiles": [ "${workspaceRoot}/**/*.js" From ab8df9618f3bc59c27565cc51a7b7e6562d1276a Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Thu, 4 Jul 2024 16:29:10 +0800 Subject: [PATCH 08/13] test: add a test case for #3782 --- test-workspace/tsc/vue2/tsconfig.json | 1 + test-workspace/tsc/vue3.3/tsconfig.json | 3 +++ test-workspace/tsc/vue3/#3782/main.vue | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 test-workspace/tsc/vue3/#3782/main.vue diff --git a/test-workspace/tsc/vue2/tsconfig.json b/test-workspace/tsc/vue2/tsconfig.json index 4002a1354a..ae36414d8e 100644 --- a/test-workspace/tsc/vue2/tsconfig.json +++ b/test-workspace/tsc/vue2/tsconfig.json @@ -17,6 +17,7 @@ "../vue3/#3615", "../vue3/#3656", "../vue3/#3672", + "../vue3/#3782", "../vue3/#4327", "../vue3/components", "../vue3/defineEmits", diff --git a/test-workspace/tsc/vue3.3/tsconfig.json b/test-workspace/tsc/vue3.3/tsconfig.json index dd2c65a327..432c386186 100644 --- a/test-workspace/tsc/vue3.3/tsconfig.json +++ b/test-workspace/tsc/vue3.3/tsconfig.json @@ -7,4 +7,7 @@ "env.d.ts", "../vue3", ], + "exclude": [ + "../vue3/#3782", + ], } diff --git a/test-workspace/tsc/vue3/#3782/main.vue b/test-workspace/tsc/vue3/#3782/main.vue new file mode 100644 index 0000000000..5db039c1bb --- /dev/null +++ b/test-workspace/tsc/vue3/#3782/main.vue @@ -0,0 +1,20 @@ + + + From 6f4aa71cdb3f5c6559295068bd2b2311308185fe Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Thu, 4 Jul 2024 18:27:08 +0800 Subject: [PATCH 09/13] chore: bump Volar --- extensions/vscode/package.json | 2 +- package.json | 2 +- packages/component-meta/package.json | 2 +- packages/language-core/package.json | 4 +- packages/language-plugin-pug/package.json | 2 +- packages/language-server/package.json | 4 +- packages/language-service/package.json | 8 +- packages/tsc/package.json | 2 +- packages/typescript-plugin/package.json | 2 +- pnpm-lock.yaml | 226 +++++++++++----------- 10 files changed, 127 insertions(+), 127 deletions(-) diff --git a/extensions/vscode/package.json b/extensions/vscode/package.json index 30aded6e30..417af43b20 100644 --- a/extensions/vscode/package.json +++ b/extensions/vscode/package.json @@ -543,7 +543,7 @@ "devDependencies": { "@types/semver": "^7.5.3", "@types/vscode": "^1.82.0", - "@volar/vscode": "~2.4.0-alpha.14", + "@volar/vscode": "~2.4.0-alpha.15", "@vue/language-core": "2.0.26-alpha.2", "@vue/language-server": "2.0.26-alpha.2", "@vue/typescript-plugin": "2.0.26-alpha.2", diff --git a/package.json b/package.json index 2cc887df8d..a517f5a569 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@lerna-lite/publish": "latest", "@tsslint/cli": "latest", "@tsslint/config": "latest", - "@volar/language-service": "~2.4.0-alpha.14", + "@volar/language-service": "~2.4.0-alpha.15", "typescript": "latest", "vite": "latest", "vitest": "latest" diff --git a/packages/component-meta/package.json b/packages/component-meta/package.json index 00c4629e56..199847167f 100644 --- a/packages/component-meta/package.json +++ b/packages/component-meta/package.json @@ -12,7 +12,7 @@ "directory": "packages/component-meta" }, "dependencies": { - "@volar/typescript": "~2.4.0-alpha.14", + "@volar/typescript": "~2.4.0-alpha.15", "@vue/language-core": "2.0.26-alpha.2", "path-browserify": "^1.0.1", "vue-component-type-helpers": "2.0.26-alpha.2" diff --git a/packages/language-core/package.json b/packages/language-core/package.json index 6392d8cbbe..acc61c12d2 100644 --- a/packages/language-core/package.json +++ b/packages/language-core/package.json @@ -12,7 +12,7 @@ "directory": "packages/language-core" }, "dependencies": { - "@volar/language-core": "~2.4.0-alpha.14", + "@volar/language-core": "~2.4.0-alpha.15", "@vue/compiler-dom": "^3.4.0", "@vue/shared": "^3.4.0", "computeds": "^0.0.1", @@ -25,7 +25,7 @@ "@types/minimatch": "^5.1.2", "@types/node": "latest", "@types/path-browserify": "^1.0.1", - "@volar/typescript": "~2.4.0-alpha.14", + "@volar/typescript": "~2.4.0-alpha.15", "@vue/compiler-sfc": "^3.4.0" }, "peerDependencies": { diff --git a/packages/language-plugin-pug/package.json b/packages/language-plugin-pug/package.json index 95b4947632..088670654a 100644 --- a/packages/language-plugin-pug/package.json +++ b/packages/language-plugin-pug/package.json @@ -16,7 +16,7 @@ "@vue/language-core": "2.0.26-alpha.2" }, "dependencies": { - "@volar/source-map": "~2.4.0-alpha.14", + "@volar/source-map": "~2.4.0-alpha.15", "volar-service-pug": "volar-2.4" } } diff --git a/packages/language-server/package.json b/packages/language-server/package.json index 05ee3a7598..76783be060 100644 --- a/packages/language-server/package.json +++ b/packages/language-server/package.json @@ -15,8 +15,8 @@ "directory": "packages/language-server" }, "dependencies": { - "@volar/language-core": "~2.4.0-alpha.14", - "@volar/language-server": "~2.4.0-alpha.14", + "@volar/language-core": "~2.4.0-alpha.15", + "@volar/language-server": "~2.4.0-alpha.15", "@vue/language-core": "2.0.26-alpha.2", "@vue/language-service": "2.0.26-alpha.2", "@vue/typescript-plugin": "2.0.26-alpha.2", diff --git a/packages/language-service/package.json b/packages/language-service/package.json index 019189d611..420b4ef3ab 100644 --- a/packages/language-service/package.json +++ b/packages/language-service/package.json @@ -16,9 +16,9 @@ "update-html-data": "node ./scripts/update-html-data.js" }, "dependencies": { - "@volar/language-core": "~2.4.0-alpha.14", - "@volar/language-service": "~2.4.0-alpha.14", - "@volar/typescript": "~2.4.0-alpha.14", + "@volar/language-core": "~2.4.0-alpha.15", + "@volar/language-service": "~2.4.0-alpha.15", + "@volar/typescript": "~2.4.0-alpha.15", "@vue/compiler-dom": "^3.4.0", "@vue/language-core": "2.0.26-alpha.2", "@vue/shared": "^3.4.0", @@ -40,7 +40,7 @@ "devDependencies": { "@types/node": "latest", "@types/path-browserify": "latest", - "@volar/kit": "~2.4.0-alpha.14", + "@volar/kit": "~2.4.0-alpha.15", "vscode-languageserver-protocol": "^3.17.5" } } diff --git a/packages/tsc/package.json b/packages/tsc/package.json index 891fe921ef..0ac798933d 100644 --- a/packages/tsc/package.json +++ b/packages/tsc/package.json @@ -16,7 +16,7 @@ "vue-tsc": "./bin/vue-tsc.js" }, "dependencies": { - "@volar/typescript": "~2.4.0-alpha.14", + "@volar/typescript": "~2.4.0-alpha.15", "@vue/language-core": "2.0.26-alpha.2", "semver": "^7.5.4" }, diff --git a/packages/typescript-plugin/package.json b/packages/typescript-plugin/package.json index 80de1b1645..4ebe261102 100644 --- a/packages/typescript-plugin/package.json +++ b/packages/typescript-plugin/package.json @@ -12,7 +12,7 @@ "directory": "packages/typescript-plugin" }, "dependencies": { - "@volar/typescript": "~2.4.0-alpha.14", + "@volar/typescript": "~2.4.0-alpha.15", "@vue/language-core": "2.0.26-alpha.2", "@vue/shared": "^3.4.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 801042284c..c77c241b56 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,14 +24,14 @@ importers: specifier: latest version: 1.0.13 '@volar/language-service': - specifier: ~2.4.0-alpha.14 - version: 2.4.0-alpha.14 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 typescript: specifier: latest version: 5.5.3 vite: specifier: latest - version: 5.3.2(@types/node@20.14.9) + version: 5.3.3(@types/node@20.14.9) vitest: specifier: latest version: 1.6.0(@types/node@20.14.9) @@ -43,10 +43,10 @@ importers: version: 7.5.8 '@types/vscode': specifier: ^1.82.0 - version: 1.90.0 + version: 1.91.0 '@volar/vscode': - specifier: ~2.4.0-alpha.14 - version: 2.4.0-alpha.14 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/language-core': specifier: 2.0.26-alpha.2 version: link:../../packages/language-core @@ -75,8 +75,8 @@ importers: packages/component-meta: dependencies: '@volar/typescript': - specifier: ~2.4.0-alpha.14 - version: 2.4.0-alpha.14 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/language-core': specifier: 2.0.26-alpha.2 version: link:../language-core @@ -102,8 +102,8 @@ importers: packages/language-core: dependencies: '@volar/language-core': - specifier: ~2.4.0-alpha.14 - version: 2.4.0-alpha.14 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/compiler-dom': specifier: ^3.4.0 version: 3.4.31 @@ -139,8 +139,8 @@ importers: specifier: ^1.0.1 version: 1.0.2 '@volar/typescript': - specifier: ~2.4.0-alpha.14 - version: 2.4.0-alpha.14 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/compiler-sfc': specifier: ^3.4.0 version: 3.4.31 @@ -148,8 +148,8 @@ importers: packages/language-plugin-pug: dependencies: '@volar/source-map': - specifier: ~2.4.0-alpha.14 - version: 2.4.0-alpha.14 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 volar-service-pug: specifier: volar-2.4 version: 0.0.59 @@ -164,11 +164,11 @@ importers: packages/language-server: dependencies: '@volar/language-core': - specifier: ~2.4.0-alpha.14 - version: 2.4.0-alpha.14 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@volar/language-server': - specifier: ~2.4.0-alpha.14 - version: 2.4.0-alpha.14 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/language-core': specifier: 2.0.26-alpha.2 version: link:../language-core @@ -188,14 +188,14 @@ importers: packages/language-service: dependencies: '@volar/language-core': - specifier: ~2.4.0-alpha.14 - version: 2.4.0-alpha.14 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@volar/language-service': - specifier: ~2.4.0-alpha.14 - version: 2.4.0-alpha.14 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@volar/typescript': - specifier: ~2.4.0-alpha.14 - version: 2.4.0-alpha.14 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/compiler-dom': specifier: ^3.4.0 version: 3.4.31 @@ -216,28 +216,28 @@ importers: version: 1.0.1 volar-service-css: specifier: volar-2.4 - version: 0.0.59(@volar/language-service@2.4.0-alpha.14) + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) volar-service-emmet: specifier: volar-2.4 - version: 0.0.59(@volar/language-service@2.4.0-alpha.14) + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) volar-service-html: specifier: volar-2.4 - version: 0.0.59(@volar/language-service@2.4.0-alpha.14) + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) volar-service-json: specifier: volar-2.4 - version: 0.0.59(@volar/language-service@2.4.0-alpha.14) + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) volar-service-pug: specifier: volar-2.4 version: 0.0.59 volar-service-pug-beautify: specifier: volar-2.4 - version: 0.0.59(@volar/language-service@2.4.0-alpha.14) + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) volar-service-typescript: specifier: volar-2.4 - version: 0.0.59(@volar/language-service@2.4.0-alpha.14) + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) volar-service-typescript-twoslash-queries: specifier: volar-2.4 - version: 0.0.59(@volar/language-service@2.4.0-alpha.14) + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) vscode-html-languageservice: specifier: ^5.2.0 version: 5.3.0 @@ -255,8 +255,8 @@ importers: specifier: latest version: 1.0.2 '@volar/kit': - specifier: ~2.4.0-alpha.14 - version: 2.4.0-alpha.14(typescript@5.5.3) + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15(typescript@5.5.3) vscode-languageserver-protocol: specifier: ^3.17.5 version: 3.17.5 @@ -264,8 +264,8 @@ importers: packages/tsc: dependencies: '@volar/typescript': - specifier: ~2.4.0-alpha.14 - version: 2.4.0-alpha.14 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/language-core': specifier: 2.0.26-alpha.2 version: link:../language-core @@ -283,8 +283,8 @@ importers: packages/typescript-plugin: dependencies: '@volar/typescript': - specifier: ~2.4.0-alpha.14 - version: 2.4.0-alpha.14 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/language-core': specifier: 2.0.26-alpha.2 version: link:../language-core @@ -839,8 +839,8 @@ packages: '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/vscode@1.90.0': - resolution: {integrity: sha512-oT+ZJL7qHS9Z8bs0+WKf/kQ27qWYR3trsXpq46YDjFqBsMLG4ygGGjPaJ2tyrH0wJzjOEmDyg9PDJBBhWg9pkQ==} + '@types/vscode@1.91.0': + resolution: {integrity: sha512-PgPr+bUODjG3y+ozWUCyzttqR9EHny9sPAfJagddQjDwdtf66y2sDKJMnFZRuzBA2YtBGASqJGPil8VDUPvO6A==} '@vitest/expect@1.6.0': resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} @@ -857,31 +857,31 @@ packages: '@vitest/utils@1.6.0': resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} - '@volar/kit@2.4.0-alpha.14': - resolution: {integrity: sha512-DTT4rETJAgvqVnnPlYfnGLEvUPewXtOf93Swle9BwQ/GapQlQf0Mi0ozhbPABRmuJidSo0kKLHydoIA9SkR7RA==} + '@volar/kit@2.4.0-alpha.15': + resolution: {integrity: sha512-ZCBErTebCVdzpSo/0wBlrjnZfqQfVIaHUJa3kOQe3TbVR/8Ny/3mij9gSkBTUcSyVtlUFpJpJo/B8aQp0xt/mQ==} peerDependencies: typescript: '*' - '@volar/language-core@2.4.0-alpha.14': - resolution: {integrity: sha512-R6eJcUKo/KftaWHwJrWjBgj/+vW9g4xTByVQEK3IHTciMKmomoSbxaNqolu1/sJKbH9Tdg0EAqTFqIzKU9iQHw==} + '@volar/language-core@2.4.0-alpha.15': + resolution: {integrity: sha512-mt8z4Fm2WxfQYoQHPcKVjLQV6PgPqyKLbkCVY2cr5RSaamqCHjhKEpsFX66aL4D/7oYguuaUw9Bx03Vt0TpIIA==} - '@volar/language-server@2.4.0-alpha.14': - resolution: {integrity: sha512-5Ys8qzGhvFbSmkugLBRq3cBTKpi6hPb6oME6M+mz2ViE+vxrGTfjKp9X5JwLQI39+mJy9LJTfdPAbRB/Ud1OhA==} + '@volar/language-server@2.4.0-alpha.15': + resolution: {integrity: sha512-epaF7Rllb29nr25F8hX5bq7ivgStNZzXGkhuPlHCUM+Ij/aQnsBeYQsfm7EttPqqO3abCctpRWyd+icklFEBoQ==} - '@volar/language-service@2.4.0-alpha.14': - resolution: {integrity: sha512-ECTStlV1v71+W1SlsYB6d1S9K6zmk7k8h8tdUopA7+iEMlD1paJX0BW/xEgeUeXCmxbJZ0kxa00sts8D8YWwlg==} + '@volar/language-service@2.4.0-alpha.15': + resolution: {integrity: sha512-H5T5JvvqvWhG0PvvKPTM0nczTbTKQ+U87a8r0eahlH/ySi2HvIHO/7PiNKLxKqLNsiT8SX4U3QcGC8ZaNcC07g==} - '@volar/snapshot-document@2.4.0-alpha.14': - resolution: {integrity: sha512-+okJY3ahb+uABvQiSDywZ26BVrGXhY1N8OL05ElXTaMsKr8w9CC6X6ta15kJRb7V3bWyp4J9mlNzYtSzdRC4QQ==} + '@volar/snapshot-document@2.4.0-alpha.15': + resolution: {integrity: sha512-8lnX0eZ7/lM+hakO5kspWABi4nijppxTy9XU0f9ns2lZ/JCE0t9EurNNiOaw4MWFO9USr0H72Ut0LCB9o4rpqA==} - '@volar/source-map@2.4.0-alpha.14': - resolution: {integrity: sha512-ACOsoDKvW29BIfdfnvQkm8S1m/RLARuHL9x7qS/9c6liMl1K0Y3RqXuC42HhWrWBm4hk0UyRKgdnv2R0teXPvg==} + '@volar/source-map@2.4.0-alpha.15': + resolution: {integrity: sha512-8Htngw5TmBY4L3ClDqBGyfLhsB8EmoEXUH1xydyEtEoK0O6NX5ur4Jw8jgvscTlwzizyl/wsN1vn0cQXVbbXYg==} - '@volar/typescript@2.4.0-alpha.14': - resolution: {integrity: sha512-FQtQruOc7qQwcq5Q666pxF6ekRqZG5ILL3sS40Oac1V69QdAZ7q+IOQ2+z6SHJDENY49ygBv0hN9HrxRLtk15Q==} + '@volar/typescript@2.4.0-alpha.15': + resolution: {integrity: sha512-U3StRBbDuxV6Woa4hvGS4kz3XcOzrWUKgFdEFN+ba1x3eaYg7+ytau8ul05xgA+UNGLXXsKur7fTUhDFyISk0w==} - '@volar/vscode@2.4.0-alpha.14': - resolution: {integrity: sha512-W1WRR8Xnm+AZlpmJcs1SkqhZ0yk/9tyOU8GwTK0TWoTTgfJGDKRap0vusbgKwBV7w82bS+fCEBctkkH2G1Homg==} + '@volar/vscode@2.4.0-alpha.15': + resolution: {integrity: sha512-apzZqZrCKO9tDWRzsy4EWUgywMzlVhIqDWP3HrXIjDuRKCFG7x8tgfqoDHOSs5M8aIo2BHk1akzCinobLkpFbw==} '@vscode/emmet-helper@2.9.3': resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} @@ -970,8 +970,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true @@ -2335,8 +2335,8 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkg-types@1.1.2: - resolution: {integrity: sha512-VEGf1he2DR5yowYRl0XJhWJq5ktm9gYIsH+y8sNJpHlxch7JPDaufgrsl4vYjd9hMUY8QVjoNncKbow9I7exyA==} + pkg-types@1.1.3: + resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} postcss@8.4.39: resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} @@ -2738,8 +2738,8 @@ packages: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} - type-fest@4.20.1: - resolution: {integrity: sha512-R6wDsVsoS9xYOpy8vgeBlqpdOyzJ12HNfQhC/aAKWM3YoCV9TtunJzh/QpkMgeDhkoynDcw5f1y+qF9yc/HHyg==} + type-fest@4.21.0: + resolution: {integrity: sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==} engines: {node: '>=16'} typed-rest-client@1.8.11: @@ -2817,8 +2817,8 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite@5.3.2: - resolution: {integrity: sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==} + vite@5.3.3: + resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3673,7 +3673,7 @@ snapshots: '@types/semver@7.5.8': {} - '@types/vscode@1.90.0': {} + '@types/vscode@1.91.0': {} '@vitest/expect@1.6.0': dependencies: @@ -3704,25 +3704,25 @@ snapshots: loupe: 2.3.7 pretty-format: 29.7.0 - '@volar/kit@2.4.0-alpha.14(typescript@5.5.3)': + '@volar/kit@2.4.0-alpha.15(typescript@5.5.3)': dependencies: - '@volar/language-service': 2.4.0-alpha.14 - '@volar/typescript': 2.4.0-alpha.14 + '@volar/language-service': 2.4.0-alpha.15 + '@volar/typescript': 2.4.0-alpha.15 typesafe-path: 0.2.2 typescript: 5.5.3 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/language-core@2.4.0-alpha.14': + '@volar/language-core@2.4.0-alpha.15': dependencies: - '@volar/source-map': 2.4.0-alpha.14 + '@volar/source-map': 2.4.0-alpha.15 - '@volar/language-server@2.4.0-alpha.14': + '@volar/language-server@2.4.0-alpha.15': dependencies: - '@volar/language-core': 2.4.0-alpha.14 - '@volar/language-service': 2.4.0-alpha.14 - '@volar/snapshot-document': 2.4.0-alpha.14 - '@volar/typescript': 2.4.0-alpha.14 + '@volar/language-core': 2.4.0-alpha.15 + '@volar/language-service': 2.4.0-alpha.15 + '@volar/snapshot-document': 2.4.0-alpha.15 + '@volar/typescript': 2.4.0-alpha.15 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 @@ -3730,29 +3730,29 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/language-service@2.4.0-alpha.14': + '@volar/language-service@2.4.0-alpha.15': dependencies: - '@volar/language-core': 2.4.0-alpha.14 + '@volar/language-core': 2.4.0-alpha.15 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/snapshot-document@2.4.0-alpha.14': + '@volar/snapshot-document@2.4.0-alpha.15': dependencies: vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 - '@volar/source-map@2.4.0-alpha.14': {} + '@volar/source-map@2.4.0-alpha.15': {} - '@volar/typescript@2.4.0-alpha.14': + '@volar/typescript@2.4.0-alpha.15': dependencies: - '@volar/language-core': 2.4.0-alpha.14 + '@volar/language-core': 2.4.0-alpha.15 path-browserify: 1.0.1 vscode-uri: 3.0.8 - '@volar/vscode@2.4.0-alpha.14': + '@volar/vscode@2.4.0-alpha.15': dependencies: - '@volar/language-server': 2.4.0-alpha.14 + '@volar/language-server': 2.4.0-alpha.15 path-browserify: 1.0.1 vscode-languageclient: 9.0.1 vscode-nls: 5.2.0 @@ -3899,11 +3899,11 @@ snapshots: acorn-walk@8.3.3: dependencies: - acorn: 8.12.0 + acorn: 8.12.1 acorn@7.4.1: {} - acorn@8.12.0: {} + acorn@8.12.1: {} add-stream@1.0.0: {} @@ -4880,7 +4880,7 @@ snapshots: local-pkg@0.5.0: dependencies: mlly: 1.7.1 - pkg-types: 1.1.2 + pkg-types: 1.1.3 locate-path@5.0.0: dependencies: @@ -5016,9 +5016,9 @@ snapshots: mlly@1.7.1: dependencies: - acorn: 8.12.0 + acorn: 8.12.1 pathe: 1.1.2 - pkg-types: 1.1.2 + pkg-types: 1.1.3 ufo: 1.5.3 ms@2.1.2: {} @@ -5267,7 +5267,7 @@ snapshots: dependencies: '@babel/code-frame': 7.24.7 index-to-position: 0.1.2 - type-fest: 4.20.1 + type-fest: 4.21.0 parse-path@7.0.0: dependencies: @@ -5327,7 +5327,7 @@ snapshots: dependencies: find-up: 4.1.0 - pkg-types@1.1.2: + pkg-types@1.1.3: dependencies: confbox: 0.1.7 mlly: 1.7.1 @@ -5415,21 +5415,21 @@ snapshots: dependencies: find-up: 6.3.0 read-pkg: 8.1.0 - type-fest: 4.20.1 + type-fest: 4.21.0 read-pkg@8.1.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.2 parse-json: 7.1.1 - type-fest: 4.20.1 + type-fest: 4.21.0 read-pkg@9.0.1: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.2 parse-json: 8.1.0 - type-fest: 4.20.1 + type-fest: 4.21.0 unicorn-magic: 0.1.0 read@1.0.7: @@ -5750,7 +5750,7 @@ snapshots: type-fest@3.13.1: {} - type-fest@4.20.1: {} + type-fest@4.21.0: {} typed-rest-client@1.8.11: dependencies: @@ -5814,7 +5814,7 @@ snapshots: debug: 4.3.5 pathe: 1.1.2 picocolors: 1.0.1 - vite: 5.3.2(@types/node@20.14.9) + vite: 5.3.3(@types/node@20.14.9) transitivePeerDependencies: - '@types/node' - less @@ -5825,7 +5825,7 @@ snapshots: - supports-color - terser - vite@5.3.2(@types/node@20.14.9): + vite@5.3.3(@types/node@20.14.9): dependencies: esbuild: 0.21.5 postcss: 8.4.39 @@ -5853,7 +5853,7 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.3.2(@types/node@20.14.9) + vite: 5.3.3(@types/node@20.14.9) vite-node: 1.6.0(@types/node@20.14.9) why-is-node-running: 2.2.2 optionalDependencies: @@ -5867,61 +5867,61 @@ snapshots: - supports-color - terser - volar-service-css@0.0.59(@volar/language-service@2.4.0-alpha.14): + volar-service-css@0.0.59(@volar/language-service@2.4.0-alpha.15): dependencies: vscode-css-languageservice: 6.3.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.14 + '@volar/language-service': 2.4.0-alpha.15 - volar-service-emmet@0.0.59(@volar/language-service@2.4.0-alpha.14): + volar-service-emmet@0.0.59(@volar/language-service@2.4.0-alpha.15): dependencies: '@emmetio/css-parser': 0.4.0 '@emmetio/html-matcher': 1.3.0 '@vscode/emmet-helper': 2.9.3 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.14 + '@volar/language-service': 2.4.0-alpha.15 - volar-service-html@0.0.59(@volar/language-service@2.4.0-alpha.14): + volar-service-html@0.0.59(@volar/language-service@2.4.0-alpha.15): dependencies: vscode-html-languageservice: 5.3.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.14 + '@volar/language-service': 2.4.0-alpha.15 - volar-service-json@0.0.59(@volar/language-service@2.4.0-alpha.14): + volar-service-json@0.0.59(@volar/language-service@2.4.0-alpha.15): dependencies: vscode-json-languageservice: 5.4.0 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.14 + '@volar/language-service': 2.4.0-alpha.15 - volar-service-pug-beautify@0.0.59(@volar/language-service@2.4.0-alpha.14): + volar-service-pug-beautify@0.0.59(@volar/language-service@2.4.0-alpha.15): dependencies: '@johnsoncodehk/pug-beautify': 0.2.2 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.14 + '@volar/language-service': 2.4.0-alpha.15 volar-service-pug@0.0.59: dependencies: - '@volar/language-service': 2.4.0-alpha.14 + '@volar/language-service': 2.4.0-alpha.15 muggle-string: 0.4.1 pug-lexer: 5.0.1 pug-parser: 6.0.0 - volar-service-html: 0.0.59(@volar/language-service@2.4.0-alpha.14) + volar-service-html: 0.0.59(@volar/language-service@2.4.0-alpha.15) vscode-html-languageservice: 5.3.0 vscode-languageserver-textdocument: 1.0.11 - volar-service-typescript-twoslash-queries@0.0.59(@volar/language-service@2.4.0-alpha.14): + volar-service-typescript-twoslash-queries@0.0.59(@volar/language-service@2.4.0-alpha.15): dependencies: vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.14 + '@volar/language-service': 2.4.0-alpha.15 - volar-service-typescript@0.0.59(@volar/language-service@2.4.0-alpha.14): + volar-service-typescript@0.0.59(@volar/language-service@2.4.0-alpha.15): dependencies: path-browserify: 1.0.1 semver: 7.6.2 @@ -5930,7 +5930,7 @@ snapshots: vscode-nls: 5.2.0 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.14 + '@volar/language-service': 2.4.0-alpha.15 vsce@2.15.0: dependencies: @@ -6103,7 +6103,7 @@ snapshots: deepmerge-ts: 5.1.0 read-pkg: 9.0.1 sort-keys: 5.0.0 - type-fest: 4.20.1 + type-fest: 4.21.0 write-json-file: 5.0.0 xml2js@0.4.23: From 8d28afc17c0ce217d72925dd0b8bfaa6db0a8b92 Mon Sep 17 00:00:00 2001 From: zhiyuanzmj <32807958+zhiyuanzmj@users.noreply.github.com> Date: Thu, 4 Jul 2024 20:25:07 +0800 Subject: [PATCH 10/13] feat(language-core): support Vue 3.5 (#4474) --- .../lib/codegen/script/component.ts | 109 +++++++++++------- .../lib/codegen/script/globalTypes.ts | 6 +- .../lib/codegen/script/scriptSetup.ts | 27 +++-- .../lib/parsers/scriptSetupRanges.ts | 12 +- pnpm-lock.yaml | 103 +++++++++++++++++ test-workspace/package.json | 3 +- test-workspace/tsc/vue3.5/components/main.vue | 80 +++++++++++++ .../components/script-setup-default-props.vue | 11 ++ .../vue3.5/components/script-setup-expose.vue | 11 ++ .../components/script-setup-generic.vue | 8 ++ .../components/script-setup-type-only.vue | 11 ++ .../tsc/vue3.5/components/script-setup.vue | 7 ++ .../tsc/vue3.5/defineModel/main.vue | 42 +++++++ .../tsc/vue3.5/defineModel/script-setup.vue | 30 +++++ .../tsc/vue3.5/defineProp_B/main.vue | 41 +++++++ .../defineProp_B/script-setup-generic.vue | 21 ++++ .../tsc/vue3.5/defineProp_B/script-setup.vue | 22 ++++ test-workspace/tsc/vue3.5/env.d.ts | 3 + test-workspace/tsc/vue3.5/tsconfig.json | 9 ++ test-workspace/tsc/vue3/#1855/child.vue | 2 +- 20 files changed, 497 insertions(+), 61 deletions(-) create mode 100644 test-workspace/tsc/vue3.5/components/main.vue create mode 100644 test-workspace/tsc/vue3.5/components/script-setup-default-props.vue create mode 100644 test-workspace/tsc/vue3.5/components/script-setup-expose.vue create mode 100644 test-workspace/tsc/vue3.5/components/script-setup-generic.vue create mode 100644 test-workspace/tsc/vue3.5/components/script-setup-type-only.vue create mode 100644 test-workspace/tsc/vue3.5/components/script-setup.vue create mode 100644 test-workspace/tsc/vue3.5/defineModel/main.vue create mode 100644 test-workspace/tsc/vue3.5/defineModel/script-setup.vue create mode 100644 test-workspace/tsc/vue3.5/defineProp_B/main.vue create mode 100644 test-workspace/tsc/vue3.5/defineProp_B/script-setup-generic.vue create mode 100644 test-workspace/tsc/vue3.5/defineProp_B/script-setup.vue create mode 100644 test-workspace/tsc/vue3.5/env.d.ts create mode 100644 test-workspace/tsc/vue3.5/tsconfig.json diff --git a/packages/language-core/lib/codegen/script/component.ts b/packages/language-core/lib/codegen/script/component.ts index e61c3ab84a..8e76cefc88 100644 --- a/packages/language-core/lib/codegen/script/component.ts +++ b/packages/language-core/lib/codegen/script/component.ts @@ -67,60 +67,85 @@ export function* generateScriptSetupOptions( scriptSetup: NonNullable, scriptSetupRanges: ScriptSetupRanges ): Generator { - const propsCodegens: (() => Generator)[] = []; + yield* generatePropsOption(options, ctx, scriptSetup, scriptSetupRanges); + yield* generateEmitsOption(options, scriptSetup, scriptSetupRanges); +} - if (ctx.generatedPropsType) { - propsCodegens.push(function* () { - yield `{} as `; - if (scriptSetupRanges.props.withDefaults?.arg) { - yield `${ctx.helperTypes.WithDefaults.name}<`; - } - yield `${ctx.helperTypes.TypePropsToOption.name}<`; - yield `__VLS_PublicProps>`; - if (scriptSetupRanges.props.withDefaults?.arg) { - yield `, typeof __VLS_withDefaultsArg>`; - } - }); - } - if (scriptSetupRanges.props.define?.arg) { - const { arg } = scriptSetupRanges.props.define; - propsCodegens.push(function* () { - yield generateSfcBlockSection(scriptSetup, arg.start, arg.end, codeFeatures.navigation); - }); +export function* generatePropsOption( + options: ScriptCodegenOptions, + ctx: ScriptCodegenContext, + scriptSetup: NonNullable, + scriptSetupRanges: ScriptSetupRanges +) { + if (options.vueCompilerOptions.target >= 3.5 && ctx.generatedPropsType) { + yield `__typeProps: {} as __VLS_PublicProps,${newLine}`; } + else { + const codegens: (() => Generator)[] = []; - if (propsCodegens.length === 1) { - yield `props: `; - for (const generate of propsCodegens) { - yield* generate(); + if (ctx.generatedPropsType) { + codegens.push(function* () { + yield `{} as `; + if (scriptSetupRanges.props.withDefaults?.arg) { + yield `${ctx.helperTypes.WithDefaults.name}<`; + } + yield `${ctx.helperTypes.TypePropsToOption.name}<`; + yield `__VLS_PublicProps>`; + if (scriptSetupRanges.props.withDefaults?.arg) { + yield `, typeof __VLS_withDefaultsArg>`; + } + }); } - yield `,${newLine}`; - } - else if (propsCodegens.length >= 2) { - yield `props: {${newLine}`; - for (const generate of propsCodegens) { - yield `...`; - yield* generate(); + if (scriptSetupRanges.props.define?.arg) { + const { arg } = scriptSetupRanges.props.define; + codegens.push(function* () { + yield generateSfcBlockSection(scriptSetup, arg.start, arg.end, codeFeatures.navigation); + }); + } + + if (codegens.length === 1) { + yield `props: `; + for (const generate of codegens) { + yield* generate(); + } yield `,${newLine}`; } - yield `},${newLine}`; + else if (codegens.length >= 2) { + yield `props: {${newLine}`; + for (const generate of codegens) { + yield `...`; + yield* generate(); + yield `,${newLine}`; + } + yield `},${newLine}`; + } + } +} + +export function* generateEmitsOption( + options: ScriptCodegenOptions, + scriptSetup: NonNullable, + scriptSetupRanges: ScriptSetupRanges +): Generator { + if (!scriptSetupRanges.emits.define && !scriptSetupRanges.defineProp.some(p => p.isModel)) { + return; } - if (scriptSetupRanges.defineProp.filter(p => p.isModel).length || scriptSetupRanges.emits.define) { - yield `emits: ({} as __VLS_NormalizeEmits),${newLine}`; } - - if (options.vueCompilerOptions.target >= 3.5) { - // https://github.com/vuejs/core/pull/10801 - if (scriptSetupRanges.props.define?.typeArg) { - yield `__typeProps: __VLS_typeProps,${newLine}`; - } - if (scriptSetupRanges.emits.define?.typeArg) { - yield `__typeEmits: ${scriptSetupRanges.emits.name ?? '__VLS_emit'},${newLine}`; + else { + yield `__typeEmits: {} as __VLS_ModelEmitsType`; + const typeArg = scriptSetupRanges.emits.define?.typeArg; + if (typeArg) { + yield ` & `; + yield scriptSetup.content.slice(typeArg.start, typeArg.end); } + yield `,${newLine}`; } } diff --git a/packages/language-core/lib/codegen/script/globalTypes.ts b/packages/language-core/lib/codegen/script/globalTypes.ts index d58bce9cdf..0c3dbc21ea 100644 --- a/packages/language-core/lib/codegen/script/globalTypes.ts +++ b/packages/language-core/lib/codegen/script/globalTypes.ts @@ -16,8 +16,10 @@ declare global { ? `import('${vueCompilerOptions.lib}/jsx-runtime').JSX.Element;` : `globalThis.JSX.Element;` } - type __VLS_GlobalComponents = import('${vueCompilerOptions.lib}').GlobalComponents - & Pick; + type __VLS_GlobalComponents = ${vueCompilerOptions.target >= 3.5 + ? `import('${vueCompilerOptions.lib}').GlobalComponents` + : `import('${vueCompilerOptions.lib}').GlobalComponents & Pick;` + } type __VLS_BuiltInPublicProps = ${vueCompilerOptions.target >= 3.4 ? `import('${vueCompilerOptions.lib}').PublicProps;` : vueCompilerOptions.target >= 3.0 diff --git a/packages/language-core/lib/codegen/script/scriptSetup.ts b/packages/language-core/lib/codegen/script/scriptSetup.ts index 7ddaf4f5c0..2a7587d776 100644 --- a/packages/language-core/lib/codegen/script/scriptSetup.ts +++ b/packages/language-core/lib/codegen/script/scriptSetup.ts @@ -1,7 +1,7 @@ import type { ScriptSetupRanges } from '../../parsers/scriptSetupRanges'; import type { Code, Sfc } from '../../types'; import { endOfLine, generateSfcBlockSection, newLine } from '../common'; -import { generateComponent } from './component'; +import { generateComponent, generateEmitsOption } from './component'; import type { ScriptCodegenContext } from './context'; import { ScriptCodegenOptions, codeFeatures } from './index'; import { generateTemplate } from './template'; @@ -48,7 +48,7 @@ export function* generateScriptSetup( + ` __VLS_setup = (async () => {${newLine}`; yield* generateSetupFunction(options, ctx, scriptSetup, scriptSetupRanges, undefined, definePropMirrors); - const emitTypes = ['typeof __VLS_modelEmitsType']; + const emitTypes = ['__VLS_ModelEmitsType']; if (scriptSetupRanges.emits.define) { emitTypes.unshift(`typeof ${scriptSetupRanges.emits.name ?? '__VLS_emit'}`); @@ -265,14 +265,7 @@ function* generateComponentProps( yield generateSfcBlockSection(scriptSetup, scriptSetupRanges.props.define.arg.start, scriptSetupRanges.props.define.arg.end, codeFeatures.navigation); yield `,${newLine}`; } - if (scriptSetupRanges.emits.define || scriptSetupRanges.defineProp.some(p => p.isModel)) { - yield ` emits: ({} as __VLS_NormalizeEmits),${newLine}`; - } + yield* generateEmitsOption(options, scriptSetup, scriptSetupRanges); yield `})${endOfLine}`; yield `let __VLS_functionalComponentProps!: `; yield `${ctx.helperTypes.OmitKeepDiscriminatedUnion.name}['$props'], keyof __VLS_BuiltInPublicProps>`; @@ -371,10 +364,13 @@ function* generateModelEmits( scriptSetup: NonNullable, scriptSetupRanges: ScriptSetupRanges ): Generator { - yield `const __VLS_modelEmitsType = `; - + yield `type __VLS_ModelEmitsType = `; if (scriptSetupRanges.defineProp.filter(p => p.isModel).length) { - yield `(await import('${options.vueCompilerOptions.lib}')).defineEmits<{${newLine}`; + if (options.vueCompilerOptions.target < 3.5) { + yield `typeof __VLS_modelEmitsType${endOfLine}`; + yield `const __VLS_modelEmitsType = (await import('${options.vueCompilerOptions.lib}')).defineEmits<`; + } + yield `{${newLine}`; for (const defineProp of scriptSetupRanges.defineProp) { if (!defineProp.isModel) { continue; @@ -394,7 +390,10 @@ function* generateModelEmits( } yield `]${endOfLine}`; } - yield `}>()`; + yield `}`; + if (options.vueCompilerOptions.target < 3.5) { + yield `>()`; + } } else { yield `{}`; } diff --git a/packages/language-core/lib/parsers/scriptSetupRanges.ts b/packages/language-core/lib/parsers/scriptSetupRanges.ts index 7820557d55..a1caccbe1e 100644 --- a/packages/language-core/lib/parsers/scriptSetupRanges.ts +++ b/packages/language-core/lib/parsers/scriptSetupRanges.ts @@ -28,7 +28,9 @@ export function parseScriptSetupRanges( } = {}; const emits: { name?: string; - define?: ReturnType; + define?: ReturnType & { + hasUnionTypeArg?: boolean; + }; } = {}; const expose: { name?: string; @@ -216,6 +218,14 @@ export function parseScriptSetupRanges( if (ts.isVariableDeclaration(parent)) { emits.name = getNodeText(ts, parent.name, ast); } + if (node.typeArguments?.length && ts.isTypeLiteralNode(node.typeArguments[0]) && node.typeArguments[0].members.at(0)) { + for (const member of node.typeArguments[0].members) { + if (ts.isCallSignatureDeclaration(member) && member.parameters[0].type && ts.isUnionTypeNode(member.parameters[0].type)) { + emits.define.hasUnionTypeArg = true; + return; + } + } + } } else if (vueCompilerOptions.macros.defineExpose.includes(callText)) { expose.define = parseDefineFunction(node); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c77c241b56..acb123789a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -310,6 +310,9 @@ importers: vue3.3: specifier: npm:vue@3.3.13 version: vue@3.3.13(typescript@5.5.3) + vue3.5: + specifier: npm:vue@alpha + version: vue@3.5.0-alpha.2(typescript@5.5.3) packages: @@ -895,12 +898,18 @@ packages: '@vue/compiler-core@3.4.31': resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==} + '@vue/compiler-core@3.5.0-alpha.2': + resolution: {integrity: sha512-BWyn6mNsYytzNUJQdDXP4ftK/AjvD4+5bE7o08xQwsvbYnFwRF80Zi3G8LSe/0AiC68PLqz2iBqZQhdMfSGyww==} + '@vue/compiler-dom@3.3.13': resolution: {integrity: sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==} '@vue/compiler-dom@3.4.31': resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==} + '@vue/compiler-dom@3.5.0-alpha.2': + resolution: {integrity: sha512-2CoonkvK32tvz9n988sE3oXPoBKYtCO0jrjno9C4gemJ7g5q8D0VJyE5AzGYFKM8ZS7bjgp2T67PAmaOOgsu0Q==} + '@vue/compiler-sfc@2.7.16': resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==} @@ -910,12 +919,18 @@ packages: '@vue/compiler-sfc@3.4.31': resolution: {integrity: sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==} + '@vue/compiler-sfc@3.5.0-alpha.2': + resolution: {integrity: sha512-tdTA3AseuL2PcT9xSEBr/3mRFiGEb8BMNydcNWgGwjQHUnVS/iJDkD3ob+QDTc4gdXENu0khQbrSb2cSvNXvTA==} + '@vue/compiler-ssr@3.3.13': resolution: {integrity: sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==} '@vue/compiler-ssr@3.4.31': resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==} + '@vue/compiler-ssr@3.5.0-alpha.2': + resolution: {integrity: sha512-wyjfDj3jHQI8Ad9cUWPml6dpO8cm3bsEdXOfiIsBSpDOKAlbdvBQIOpb9CQE09JLPK3j8hFtAEGPtq1COcL2kw==} + '@vue/reactivity-transform@3.3.13': resolution: {integrity: sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==} @@ -925,18 +940,27 @@ packages: '@vue/reactivity@3.4.31': resolution: {integrity: sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q==} + '@vue/reactivity@3.5.0-alpha.2': + resolution: {integrity: sha512-4UG565XKudWMqijfrIY296XTJLBh3m/nZa+mLhsK5uMq0xBDFsJsrVskAmFlLNTlOd6c5FiktZufB9AB7m6VKw==} + '@vue/runtime-core@3.3.13': resolution: {integrity: sha512-1TzA5TvGuh2zUwMJgdfvrBABWZ7y8kBwBhm7BXk8rvdx2SsgcGfz2ruv2GzuGZNvL1aKnK8CQMV/jFOrxNQUMA==} '@vue/runtime-core@3.4.31': resolution: {integrity: sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw==} + '@vue/runtime-core@3.5.0-alpha.2': + resolution: {integrity: sha512-59R12UzEhqEOlItt6yKOoTyQ+Hx2hqFPKmdYPT9VAYmLH+ABngjrvw9KuJT9OsR+f4q/NwmCAAvjXV4gC56/cg==} + '@vue/runtime-dom@3.3.13': resolution: {integrity: sha512-JJkpE8R/hJKXqVTgUoODwS5wqKtOsmJPEqmp90PDVGygtJ4C0PtOkcEYXwhiVEmef6xeXcIlrT3Yo5aQ4qkHhQ==} '@vue/runtime-dom@3.4.31': resolution: {integrity: sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw==} + '@vue/runtime-dom@3.5.0-alpha.2': + resolution: {integrity: sha512-3ShrCHo22tPMblLl0K6VXTv6MB95D9dBZH/YyJO+aLcOdEQXrLtVp8sXG6oPIwapBVlNkOZX7lUQbnzpdZgosQ==} + '@vue/server-renderer@3.3.13': resolution: {integrity: sha512-vSnN+nuf6iSqTL3Qgx/9A+BT+0Zf/VJOgF5uMZrKjYPs38GMYyAU1coDyBNHauehXDaP+zl73VhwWv0vBRBHcg==} peerDependencies: @@ -947,12 +971,20 @@ packages: peerDependencies: vue: 3.4.31 + '@vue/server-renderer@3.5.0-alpha.2': + resolution: {integrity: sha512-I9Mq56+B3XUhcKSEr0T9xTqOy04ORTrFANazPR871ITXAHO5viQXrdqOgh2nvBrz6L5c8vpDZgKDhKn+H7G9jg==} + peerDependencies: + vue: 3.5.0-alpha.2 + '@vue/shared@3.3.13': resolution: {integrity: sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==} '@vue/shared@3.4.31': resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==} + '@vue/shared@3.5.0-alpha.2': + resolution: {integrity: sha512-PMOD/qZfwNGE1xpz92Q7YtcGzz2JtvULSb4HIvv3N0idMAlIKmnzkIvsB0EhosPnJWe5O+xDe+DKmr6fIKu7HQ==} + JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -2997,6 +3029,14 @@ packages: typescript: optional: true + vue@3.5.0-alpha.2: + resolution: {integrity: sha512-dyhWA95ko++OlThqFNptBXiVFihKPfZ2487FKSYiB1X7LK1DX6AOjEfxbJdzupoNSOuHDVJIzOvcrBeyChX4vA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -3782,6 +3822,14 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.0 + '@vue/compiler-core@3.5.0-alpha.2': + dependencies: + '@babel/parser': 7.24.7 + '@vue/shared': 3.5.0-alpha.2 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + '@vue/compiler-dom@3.3.13': dependencies: '@vue/compiler-core': 3.3.13 @@ -3792,6 +3840,11 @@ snapshots: '@vue/compiler-core': 3.4.31 '@vue/shared': 3.4.31 + '@vue/compiler-dom@3.5.0-alpha.2': + dependencies: + '@vue/compiler-core': 3.5.0-alpha.2 + '@vue/shared': 3.5.0-alpha.2 + '@vue/compiler-sfc@2.7.16': dependencies: '@babel/parser': 7.24.7 @@ -3825,6 +3878,18 @@ snapshots: postcss: 8.4.39 source-map-js: 1.2.0 + '@vue/compiler-sfc@3.5.0-alpha.2': + dependencies: + '@babel/parser': 7.24.7 + '@vue/compiler-core': 3.5.0-alpha.2 + '@vue/compiler-dom': 3.5.0-alpha.2 + '@vue/compiler-ssr': 3.5.0-alpha.2 + '@vue/shared': 3.5.0-alpha.2 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.39 + source-map-js: 1.2.0 + '@vue/compiler-ssr@3.3.13': dependencies: '@vue/compiler-dom': 3.3.13 @@ -3835,6 +3900,11 @@ snapshots: '@vue/compiler-dom': 3.4.31 '@vue/shared': 3.4.31 + '@vue/compiler-ssr@3.5.0-alpha.2': + dependencies: + '@vue/compiler-dom': 3.5.0-alpha.2 + '@vue/shared': 3.5.0-alpha.2 + '@vue/reactivity-transform@3.3.13': dependencies: '@babel/parser': 7.24.7 @@ -3851,6 +3921,10 @@ snapshots: dependencies: '@vue/shared': 3.4.31 + '@vue/reactivity@3.5.0-alpha.2': + dependencies: + '@vue/shared': 3.5.0-alpha.2 + '@vue/runtime-core@3.3.13': dependencies: '@vue/reactivity': 3.3.13 @@ -3861,6 +3935,11 @@ snapshots: '@vue/reactivity': 3.4.31 '@vue/shared': 3.4.31 + '@vue/runtime-core@3.5.0-alpha.2': + dependencies: + '@vue/reactivity': 3.5.0-alpha.2 + '@vue/shared': 3.5.0-alpha.2 + '@vue/runtime-dom@3.3.13': dependencies: '@vue/runtime-core': 3.3.13 @@ -3874,6 +3953,12 @@ snapshots: '@vue/shared': 3.4.31 csstype: 3.1.3 + '@vue/runtime-dom@3.5.0-alpha.2': + dependencies: + '@vue/runtime-core': 3.5.0-alpha.2 + '@vue/shared': 3.5.0-alpha.2 + csstype: 3.1.3 + '@vue/server-renderer@3.3.13(vue@3.4.31(typescript@5.5.3))': dependencies: '@vue/compiler-ssr': 3.3.13 @@ -3886,10 +3971,18 @@ snapshots: '@vue/shared': 3.4.31 vue: 3.4.31(typescript@5.5.3) + '@vue/server-renderer@3.5.0-alpha.2(vue@3.4.31(typescript@5.5.3))': + dependencies: + '@vue/compiler-ssr': 3.5.0-alpha.2 + '@vue/shared': 3.5.0-alpha.2 + vue: 3.4.31(typescript@5.5.3) + '@vue/shared@3.3.13': {} '@vue/shared@3.4.31': {} + '@vue/shared@3.5.0-alpha.2': {} + JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 @@ -6034,6 +6127,16 @@ snapshots: optionalDependencies: typescript: 5.5.3 + vue@3.5.0-alpha.2(typescript@5.5.3): + dependencies: + '@vue/compiler-dom': 3.5.0-alpha.2 + '@vue/compiler-sfc': 3.5.0-alpha.2 + '@vue/runtime-dom': 3.5.0-alpha.2 + '@vue/server-renderer': 3.5.0-alpha.2(vue@3.4.31(typescript@5.5.3)) + '@vue/shared': 3.5.0-alpha.2 + optionalDependencies: + typescript: 5.5.3 + wcwidth@1.0.1: dependencies: defaults: 1.0.4 diff --git a/test-workspace/package.json b/test-workspace/package.json index e2a6d47230..0860517517 100644 --- a/test-workspace/package.json +++ b/test-workspace/package.json @@ -5,6 +5,7 @@ "vue": "^3.4.0", "vue-component-type-helpers": "2.0.26-alpha.2", "vue2": "npm:vue@2.7.16", - "vue3.3": "npm:vue@3.3.13" + "vue3.3": "npm:vue@3.3.13", + "vue3.5": "npm:vue@alpha" } } diff --git a/test-workspace/tsc/vue3.5/components/main.vue b/test-workspace/tsc/vue3.5/components/main.vue new file mode 100644 index 0000000000..ab5fdd188e --- /dev/null +++ b/test-workspace/tsc/vue3.5/components/main.vue @@ -0,0 +1,80 @@ + diff --git a/test-workspace/tsc/vue3.5/components/script-setup-default-props.vue b/test-workspace/tsc/vue3.5/components/script-setup-default-props.vue new file mode 100644 index 0000000000..5f7ea7aa4c --- /dev/null +++ b/test-workspace/tsc/vue3.5/components/script-setup-default-props.vue @@ -0,0 +1,11 @@ + diff --git a/test-workspace/tsc/vue3.5/components/script-setup-expose.vue b/test-workspace/tsc/vue3.5/components/script-setup-expose.vue new file mode 100644 index 0000000000..0186f94f29 --- /dev/null +++ b/test-workspace/tsc/vue3.5/components/script-setup-expose.vue @@ -0,0 +1,11 @@ + diff --git a/test-workspace/tsc/vue3.5/components/script-setup-generic.vue b/test-workspace/tsc/vue3.5/components/script-setup-generic.vue new file mode 100644 index 0000000000..1de1c0a6fe --- /dev/null +++ b/test-workspace/tsc/vue3.5/components/script-setup-generic.vue @@ -0,0 +1,8 @@ + diff --git a/test-workspace/tsc/vue3.5/components/script-setup-type-only.vue b/test-workspace/tsc/vue3.5/components/script-setup-type-only.vue new file mode 100644 index 0000000000..e1e2b57197 --- /dev/null +++ b/test-workspace/tsc/vue3.5/components/script-setup-type-only.vue @@ -0,0 +1,11 @@ + diff --git a/test-workspace/tsc/vue3.5/components/script-setup.vue b/test-workspace/tsc/vue3.5/components/script-setup.vue new file mode 100644 index 0000000000..fdb37a19ec --- /dev/null +++ b/test-workspace/tsc/vue3.5/components/script-setup.vue @@ -0,0 +1,7 @@ + diff --git a/test-workspace/tsc/vue3.5/defineModel/main.vue b/test-workspace/tsc/vue3.5/defineModel/main.vue new file mode 100644 index 0000000000..22d1ff9e86 --- /dev/null +++ b/test-workspace/tsc/vue3.5/defineModel/main.vue @@ -0,0 +1,42 @@ + + + diff --git a/test-workspace/tsc/vue3.5/defineModel/script-setup.vue b/test-workspace/tsc/vue3.5/defineModel/script-setup.vue new file mode 100644 index 0000000000..d1a41272b6 --- /dev/null +++ b/test-workspace/tsc/vue3.5/defineModel/script-setup.vue @@ -0,0 +1,30 @@ + + + diff --git a/test-workspace/tsc/vue3.5/defineProp_B/main.vue b/test-workspace/tsc/vue3.5/defineProp_B/main.vue new file mode 100644 index 0000000000..80a05ed8ba --- /dev/null +++ b/test-workspace/tsc/vue3.5/defineProp_B/main.vue @@ -0,0 +1,41 @@ + diff --git a/test-workspace/tsc/vue3.5/defineProp_B/script-setup-generic.vue b/test-workspace/tsc/vue3.5/defineProp_B/script-setup-generic.vue new file mode 100644 index 0000000000..87f322d69d --- /dev/null +++ b/test-workspace/tsc/vue3.5/defineProp_B/script-setup-generic.vue @@ -0,0 +1,21 @@ + + + diff --git a/test-workspace/tsc/vue3.5/defineProp_B/script-setup.vue b/test-workspace/tsc/vue3.5/defineProp_B/script-setup.vue new file mode 100644 index 0000000000..1ee130a577 --- /dev/null +++ b/test-workspace/tsc/vue3.5/defineProp_B/script-setup.vue @@ -0,0 +1,22 @@ + + + diff --git a/test-workspace/tsc/vue3.5/env.d.ts b/test-workspace/tsc/vue3.5/env.d.ts new file mode 100644 index 0000000000..6920d23218 --- /dev/null +++ b/test-workspace/tsc/vue3.5/env.d.ts @@ -0,0 +1,3 @@ +declare module 'vue' { + export * from 'vue3.5'; +} diff --git a/test-workspace/tsc/vue3.5/tsconfig.json b/test-workspace/tsc/vue3.5/tsconfig.json new file mode 100644 index 0000000000..87f184a8cd --- /dev/null +++ b/test-workspace/tsc/vue3.5/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "vueCompilerOptions": { + "target": 3.5, + }, + "include": [ + "**/*" + ], +} diff --git a/test-workspace/tsc/vue3/#1855/child.vue b/test-workspace/tsc/vue3/#1855/child.vue index f679f09a0c..320cfdb7fa 100644 --- a/test-workspace/tsc/vue3/#1855/child.vue +++ b/test-workspace/tsc/vue3/#1855/child.vue @@ -1,5 +1,5 @@