Skip to content

feat(types): provide internal options for directly using user types in language tools #10801

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Apr 27, 2024

Conversation

yyx990803
Copy link
Member

@yyx990803 yyx990803 commented Apr 25, 2024

ref #8952
cc @johnsoncodehk

Did some significant refactoring of defineComponent() types in this PR as well. Previously we used 3 different overloads of defineComponent to handle the cases of (1) no props (2) array props and (3) object props. For each of the overloads we also have an extra ComponentOptionsWith{No|Array|Object}Props type that repeats all the generic arguments.

I started by adding yet another overload for the type-based props case, but found it to be extremely unwieldy to manage all the overloads and duplication in the component options utility types. So I managed to merge all 4 cases into a single defineComponent() signature by picking the right props type source with conditional types. This also makes the previous ComponentOptionsWith{No|Array|Object}Props no longer needed - but they are kept because they were previously exported and may have been used by some libraries.

Copy link

Size Report

Bundles

File Size Gzip Brotli
runtime-dom.global.prod.js 93.9 kB (+3.24 kB) 35.5 kB (+966 B) 32 kB (+877 B)
vue.global.prod.js 151 kB (+3.24 kB) 54.8 kB (+999 B) 48.9 kB (+809 B)

Usages

Name Size Gzip Brotli
createApp 53.9 kB (+3.16 kB) 20.9 kB (+1.01 kB) 18.9 kB (+838 B)
createSSRApp 57.2 kB (+3.16 kB) 22.2 kB (+983 B) 20.1 kB (+802 B)
defineCustomElement 56.2 kB (+3.16 kB) 21.6 kB (+999 B) 19.6 kB (+802 B)
overall 67.7 kB (+3.21 kB) 25.8 kB (+958 B) 23.4 kB (+854 B)

@johnsoncodehk
Copy link
Member

@yyx990803 yyx990803 changed the title feat(types): provide internal options for directly using user prop types in language tools feat(types): provide internal options for directly using user types in language tools Apr 27, 2024
@vue-bot
Copy link
Contributor

vue-bot commented Apr 27, 2024

📝 Ran ecosystem CI: Open

suite result latest scheduled
language-tools failure success
nuxt success success
pinia success success
primevue success success
quasar success success
radix-vue success success
router success success
test-utils success success
vant failure success
vite-plugin-vue success success
vitepress success success
vue-i18n success success
vue-macros success success
vuetify failure failure
vueuse success success
vue-simple-compiler success success

@KaelWD
Copy link
Contributor

KaelWD commented May 2, 2024

@yyx990803 The deprecated legacy types aren't re-exported from runtime-core/index

renovate bot added a commit to slipmatio/logger that referenced this pull request May 6, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.12.7` ->
`20.12.8`](https://renovatebot.com/diffs/npm/@types%2fnode/20.12.7/20.12.8)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.12.7/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.12.7/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitest/coverage-v8](https://togithub.com/vitest-dev/vitest/tree/main/packages/coverage-v8#readme)
([source](https://togithub.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8))
| [`1.5.2` ->
`1.6.0`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/1.5.2/1.6.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-v8/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-v8/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-v8/1.5.2/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-v8/1.5.2/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite](https://vitejs.dev)
([source](https://togithub.com/vitejs/vite/tree/HEAD/packages/vite)) |
[`5.2.10` ->
`5.2.11`](https://renovatebot.com/diffs/npm/vite/5.2.10/5.2.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.2.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.2.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.2.10/5.2.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.2.10/5.2.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://togithub.com/vitest-dev/vitest)
([source](https://togithub.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`1.5.2` ->
`1.6.0`](https://renovatebot.com/diffs/npm/vitest/1.5.2/1.6.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/1.5.2/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/1.5.2/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue](https://togithub.com/vuejs/core/tree/main/packages/vue#readme)
([source](https://togithub.com/vuejs/core)) | [`3.4.25` ->
`3.4.26`](https://renovatebot.com/diffs/npm/vue/3.4.25/3.4.26) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.4.26?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue/3.4.26?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue/3.4.25/3.4.26?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.4.25/3.4.26?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue-tsc](https://togithub.com/vuejs/language-tools)
([source](https://togithub.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`2.0.14` ->
`2.0.16`](https://renovatebot.com/diffs/npm/vue-tsc/2.0.14/2.0.16) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/2.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/2.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/2.0.14/2.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/2.0.14/2.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest (@&#8203;vitest/coverage-v8)</summary>

###
[`v1.6.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v1.6.0)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v1.5.3...v1.6.0)

#####    🚀 Features

- Support standalone mode  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5565](https://togithub.com/vitest-dev/vitest/issues/5565)
[<samp>(bdce0)</samp>](https://togithub.com/vitest-dev/vitest/commit/bdce0a29)
- Custom "snapshotEnvironment" option  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5449](https://togithub.com/vitest-dev/vitest/issues/5449)
[<samp>(30f72)</samp>](https://togithub.com/vitest-dev/vitest/commit/30f728bc)
- **benchmark**: Support comparing benchmark result  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) and
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5398](https://togithub.com/vitest-dev/vitest/issues/5398)
[<samp>(f8d3d)</samp>](https://togithub.com/vitest-dev/vitest/commit/f8d3d22e)
- **browser**: Allow injecting scripts  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5656](https://togithub.com/vitest-dev/vitest/issues/5656)
[<samp>(21e58)</samp>](https://togithub.com/vitest-dev/vitest/commit/21e58bd8)
- **reporter**: Support `includeConsoleOutput` and `addFileAttribute` in
junit  -  by [@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5659](https://togithub.com/vitest-dev/vitest/issues/5659)
[<samp>(2f913)</samp>](https://togithub.com/vitest-dev/vitest/commit/2f913222)
- **ui**: Sort items by file name  -  by
[@&#8203;btea](https://togithub.com/btea) in
[https://github.com/vitest-dev/vitest/issues/5652](https://togithub.com/vitest-dev/vitest/issues/5652)
[<samp>(1f726)</samp>](https://togithub.com/vitest-dev/vitest/commit/1f7268fa)

#####    🐞 Bug Fixes

- Keep order of arguments for .each in custom task collectors  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5640](https://togithub.com/vitest-dev/vitest/issues/5640)
[<samp>(7d57c)</samp>](https://togithub.com/vitest-dev/vitest/commit/7d57c116)
- Call `resolveId('vitest')` after `buildStart`  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5646](https://togithub.com/vitest-dev/vitest/issues/5646)
[<samp>(f5faf)</samp>](https://togithub.com/vitest-dev/vitest/commit/f5faf423)
- Hash the name of the file when caching  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5654](https://togithub.com/vitest-dev/vitest/issues/5654)
[<samp>(c9e68)</samp>](https://togithub.com/vitest-dev/vitest/commit/c9e68ced)
- Don't panic on empty files in node_modules  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va)
[<samp>(40c29)</samp>](https://togithub.com/vitest-dev/vitest/commit/40c299fe)
- Use `toJSON` for error serialization  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5526](https://togithub.com/vitest-dev/vitest/issues/5526)
[<samp>(19a21)</samp>](https://togithub.com/vitest-dev/vitest/commit/19a21e49)
-   **coverage**:
- Exclude `*.test-d.*` by default  -  by
[@&#8203;MindfulPol](https://togithub.com/MindfulPol) in
[https://github.com/vitest-dev/vitest/issues/5634](https://togithub.com/vitest-dev/vitest/issues/5634)
[<samp>(bfe8a)</samp>](https://togithub.com/vitest-dev/vitest/commit/bfe8ad9d)
- Apply `vite-node`'s wrapper only to executed files  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/5642](https://togithub.com/vitest-dev/vitest/issues/5642)
[<samp>(c9883)</samp>](https://togithub.com/vitest-dev/vitest/commit/c9883f3e)
-   **vm**:
- Support network imports  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5610](https://togithub.com/vitest-dev/vitest/issues/5610)
[<samp>(103a6)</samp>](https://togithub.com/vitest-dev/vitest/commit/103a6002)

#####    🏎 Performance

- Improve performance of forks pool  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5592](https://togithub.com/vitest-dev/vitest/issues/5592)
[<samp>(d8304)</samp>](https://togithub.com/vitest-dev/vitest/commit/d8304bb4)
- Unnecessary rpc call when coverage is disabled  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/5658](https://togithub.com/vitest-dev/vitest/issues/5658)
[<samp>(c5712)</samp>](https://togithub.com/vitest-dev/vitest/commit/c571276a)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v1.5.3...v1.6.0)

###
[`v1.5.3`](https://togithub.com/vitest-dev/vitest/releases/tag/v1.5.3)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v1.5.2...v1.5.3)

#####    🐞 Bug Fixes

- Use package.json name for a workspace project if not provided  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5608](https://togithub.com/vitest-dev/vitest/issues/5608)
[<samp>(48fba)</samp>](https://togithub.com/vitest-dev/vitest/commit/48fba190)
- Backport jest iterable equality within object  -  by
[@&#8203;sukovanej](https://togithub.com/sukovanej) in
[https://github.com/vitest-dev/vitest/issues/5621](https://togithub.com/vitest-dev/vitest/issues/5621)
[<samp>(30e5d)</samp>](https://togithub.com/vitest-dev/vitest/commit/30e5dc1b)
- **browser**: Support benchmark  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5622](https://togithub.com/vitest-dev/vitest/issues/5622)
[<samp>(becab)</samp>](https://togithub.com/vitest-dev/vitest/commit/becabb5e)
- **reporter**: Use default error formatter for JUnit  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5629](https://togithub.com/vitest-dev/vitest/issues/5629)
[<samp>(20060)</samp>](https://togithub.com/vitest-dev/vitest/commit/200609cc)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v1.5.2...v1.5.3)

</details>

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v5.2.11`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small5211-2024-05-02-small)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v5.2.10...v5.2.11)

- feat: improve dynamic import variable failure error message
([#&#8203;16519](https://togithub.com/vitejs/vite/issues/16519))
([f8feeea](https://togithub.com/vitejs/vite/commit/f8feeea)), closes
[#&#8203;16519](https://togithub.com/vitejs/vite/issues/16519)
- fix: dynamic-import-vars plugin normalize path issue
([#&#8203;16518](https://togithub.com/vitejs/vite/issues/16518))
([f71ba5b](https://togithub.com/vitejs/vite/commit/f71ba5b)), closes
[#&#8203;16518](https://togithub.com/vitejs/vite/issues/16518)
- fix: scripts and styles were missing from built HTML on Windows
([#&#8203;16421](https://togithub.com/vitejs/vite/issues/16421))
([0e93f58](https://togithub.com/vitejs/vite/commit/0e93f58)), closes
[#&#8203;16421](https://togithub.com/vitejs/vite/issues/16421)
- fix(deps): update all non-major dependencies
([#&#8203;16488](https://togithub.com/vitejs/vite/issues/16488))
([2d50be2](https://togithub.com/vitejs/vite/commit/2d50be2)), closes
[#&#8203;16488](https://togithub.com/vitejs/vite/issues/16488)
- fix(deps): update all non-major dependencies
([#&#8203;16549](https://togithub.com/vitejs/vite/issues/16549))
([2d6a13b](https://togithub.com/vitejs/vite/commit/2d6a13b)), closes
[#&#8203;16549](https://togithub.com/vitejs/vite/issues/16549)
- fix(dev): watch publicDir explicitly to include it outside the root
([#&#8203;16502](https://togithub.com/vitejs/vite/issues/16502))
([4d83eb5](https://togithub.com/vitejs/vite/commit/4d83eb5)), closes
[#&#8203;16502](https://togithub.com/vitejs/vite/issues/16502)
- fix(preload): skip preload for non-static urls
([#&#8203;16556](https://togithub.com/vitejs/vite/issues/16556))
([bb79c9b](https://togithub.com/vitejs/vite/commit/bb79c9b)), closes
[#&#8203;16556](https://togithub.com/vitejs/vite/issues/16556)
- fix(ssr): handle class declaration and expression name scoping
([#&#8203;16569](https://togithub.com/vitejs/vite/issues/16569))
([c071eb3](https://togithub.com/vitejs/vite/commit/c071eb3)), closes
[#&#8203;16569](https://togithub.com/vitejs/vite/issues/16569)
- fix(ssr): handle function expression name scoping
([#&#8203;16563](https://togithub.com/vitejs/vite/issues/16563))
([02db947](https://togithub.com/vitejs/vite/commit/02db947)), closes
[#&#8203;16563](https://togithub.com/vitejs/vite/issues/16563)

</details>

<details>
<summary>vuejs/core (vue)</summary>

###
[`v3.4.26`](https://togithub.com/vuejs/core/blob/HEAD/CHANGELOG.md#3426-2024-04-29)

[Compare
Source](https://togithub.com/vuejs/core/compare/v3.4.25...v3.4.26)

##### Bug Fixes

- **compiler-core:** fix bail constant for globals
([fefce06](https://togithub.com/vuejs/core/commit/fefce06b41e3b75de3d748dc6399628ec5056e78))
- **compiler-core:** remove unnecessary constant bail check
([09b4df8](https://togithub.com/vuejs/core/commit/09b4df809e59ef5f4bc91acfc56dc8f82a8e243a)),
closes [#&#8203;10807](https://togithub.com/vuejs/core/issues/10807)
- **runtime-core:** attrs should be readonly in functional components
([#&#8203;10767](https://togithub.com/vuejs/core/issues/10767))
([e8fd644](https://togithub.com/vuejs/core/commit/e8fd6446d14a6899e5e8ab1ee394d90088e01844))
- **runtime-core:** ensure slot compiler marker writable
([#&#8203;10825](https://togithub.com/vuejs/core/issues/10825))
([9c2de62](https://togithub.com/vuejs/core/commit/9c2de6244cd44bc5fbfd82b5850c710ce725044f)),
closes [#&#8203;10818](https://togithub.com/vuejs/core/issues/10818)
- **runtime-core:** properly handle inherit transition during clone
VNode ([#&#8203;10809](https://togithub.com/vuejs/core/issues/10809))
([638a79f](https://togithub.com/vuejs/core/commit/638a79f64a7e184f2a2c65e21d764703f4bda561)),
closes [#&#8203;3716](https://togithub.com/vuejs/core/issues/3716)
[#&#8203;10497](https://togithub.com/vuejs/core/issues/10497)
[#&#8203;4091](https://togithub.com/vuejs/core/issues/4091)
- **Transition:** re-fix
[#&#8203;10620](https://togithub.com/vuejs/core/issues/10620)
([#&#8203;10832](https://togithub.com/vuejs/core/issues/10832))
([accf839](https://togithub.com/vuejs/core/commit/accf8396ae1c9dd49759ba0546483f1d2c70c9bc)),
closes [#&#8203;10632](https://togithub.com/vuejs/core/issues/10632)
[#&#8203;10827](https://togithub.com/vuejs/core/issues/10827)

</details>

<details>
<summary>vuejs/language-tools (vue-tsc)</summary>

###
[`v2.0.16`](https://togithub.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2016-202451)

[Compare
Source](https://togithub.com/vuejs/language-tools/compare/v2.0.15...v2.0.16)

##### Bug Fixes

- **language-core:** virtual document language ID is not updated when
changing SFC style block lang
- **language-core:** correct logic for `defineSlots` destructuring
([#&#8203;4326](https://togithub.com/vuejs/language-tools/issues/4326))
- Thanks [@&#8203;zhiyuanzmj](https://togithub.com/zhiyuanzmj)
- **language-core:** ObjectDirective does not work with `defineSlots`
([#&#8203;4327](https://togithub.com/vuejs/language-tools/issues/4327))
- **language-service:** emmet not working in postcss style block
([https://github.com/volarjs/volar.js/issues/169](https://togithub.com/volarjs/volar.js/issues/169))

##### Other Changes

- Upgrade to [Volar
2.2](https://togithub.com/volarjs/volar.js/releases/tag/v2.2.0)
- **language-core:** export `VueEmbeddedCode`
([#&#8203;4265](https://togithub.com/vuejs/language-tools/issues/4265))
- Thanks [@&#8203;zhiyuanzmj](https://togithub.com/zhiyuanzmj)
- **typescript-plugin:** expose `FileRegistry` to `project.program`
([#&#8203;3963](https://togithub.com/vuejs/language-tools/issues/3963))
- Thanks [@&#8203;zcf0508](https://togithub.com/zcf0508)
- **vscode:** remove outdated formatters section
([#&#8203;4243](https://togithub.com/vuejs/language-tools/issues/4243))
- Thanks [@&#8203;BBboy01](https://togithub.com/BBboy01)

###
[`v2.0.15`](https://togithub.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2015-2024430)

[Compare
Source](https://togithub.com/vuejs/language-tools/compare/v2.0.14...v2.0.15)

##### Features

- Redesign additional extensions, VitePress, PetiteVue support
([#&#8203;4321](https://togithub.com/vuejs/language-tools/issues/4321))
- Fix custom file extensions not working in Hybrid Mode
([#&#8203;4251](https://togithub.com/vuejs/language-tools/issues/4251))
- **vscode:** prompt when Hybrid Mode is explicitly enabled but known
incompatible extensions are installed
- **language-core:** use internal options for directly exposing user
props/emits types
([vuejs/core#10801](https://togithub.com/vuejs/core/pull/10801))
- **language-core:** support defineSlots destructuring
([#&#8203;4312](https://togithub.com/vuejs/language-tools/issues/4312))
- Thanks [@&#8203;zhiyuanzmj](https://togithub.com/zhiyuanzmj)

##### Bug Fixes

- **vscode:** when enabled VitePress support, extension not activated
when opening markdown files
-   **language-core:** auto-complete not working in v-bind

##### Performance

- **language-service:** emmet completion should not be blocked by TS
type evaluation
([#&#8203;4298](https://togithub.com/vuejs/language-tools/issues/4298))
-   **language-core:** simplify virtual code for intrinsic elements

##### Other Changes

-   Upgrade Volar from `v2.2.0-alpha.10` to `v2.2.0-alpha.12`:
    -   Avoid extension crash when workspace TSDK does not exist
- Fix template variables cannot be renamed at the first character in
Hybrid Mode
([#&#8203;4297](https://togithub.com/vuejs/language-tools/issues/4297))
- Fix template virtual code mapping is misaligned in Windows in Hybrid
Mode
([#&#8203;4297](https://togithub.com/vuejs/language-tools/issues/4297))
- Add `svelte.svelte-vscode` (>=108.4.0) to Hybrid Mode compatibility
whitelist
([sveltejs/language-tools#2317](https://togithub.com/sveltejs/language-tools/pull/2317))
-   **component-meta:** convert source code to TS
- **language-core:** export `allCodeFeatures`
([#&#8203;4320](https://togithub.com/vuejs/language-tools/issues/4320))
- Thanks [@&#8203;zhiyuanzmj](https://togithub.com/zhiyuanzmj)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone
Europe/Helsinki, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/slipmatio/logger).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to slipmatio/ui that referenced this pull request May 6, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.12.7` ->
`20.12.8`](https://renovatebot.com/diffs/npm/@types%2fnode/20.12.7/20.12.8)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.12.7/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.12.7/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitest/coverage-v8](https://togithub.com/vitest-dev/vitest/tree/main/packages/coverage-v8#readme)
([source](https://togithub.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8))
| [`1.5.2` ->
`1.6.0`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/1.5.2/1.6.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-v8/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-v8/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-v8/1.5.2/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-v8/1.5.2/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite](https://vitejs.dev)
([source](https://togithub.com/vitejs/vite/tree/HEAD/packages/vite)) |
[`5.2.10` ->
`5.2.11`](https://renovatebot.com/diffs/npm/vite/5.2.10/5.2.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.2.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.2.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.2.10/5.2.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.2.10/5.2.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://togithub.com/vitest-dev/vitest)
([source](https://togithub.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`1.5.2` ->
`1.6.0`](https://renovatebot.com/diffs/npm/vitest/1.5.2/1.6.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/1.5.2/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/1.5.2/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue](https://togithub.com/vuejs/core/tree/main/packages/vue#readme)
([source](https://togithub.com/vuejs/core)) | [`3.4.25` ->
`3.4.26`](https://renovatebot.com/diffs/npm/vue/3.4.25/3.4.26) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.4.26?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue/3.4.26?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue/3.4.25/3.4.26?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.4.25/3.4.26?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue-tsc](https://togithub.com/vuejs/language-tools)
([source](https://togithub.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`2.0.14` ->
`2.0.16`](https://renovatebot.com/diffs/npm/vue-tsc/2.0.14/2.0.16) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/2.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/2.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/2.0.14/2.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/2.0.14/2.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest (@&#8203;vitest/coverage-v8)</summary>

###
[`v1.6.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v1.6.0)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v1.5.3...v1.6.0)

#####    🚀 Features

- Support standalone mode  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5565](https://togithub.com/vitest-dev/vitest/issues/5565)
[<samp>(bdce0)</samp>](https://togithub.com/vitest-dev/vitest/commit/bdce0a29)
- Custom "snapshotEnvironment" option  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5449](https://togithub.com/vitest-dev/vitest/issues/5449)
[<samp>(30f72)</samp>](https://togithub.com/vitest-dev/vitest/commit/30f728bc)
- **benchmark**: Support comparing benchmark result  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) and
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5398](https://togithub.com/vitest-dev/vitest/issues/5398)
[<samp>(f8d3d)</samp>](https://togithub.com/vitest-dev/vitest/commit/f8d3d22e)
- **browser**: Allow injecting scripts  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5656](https://togithub.com/vitest-dev/vitest/issues/5656)
[<samp>(21e58)</samp>](https://togithub.com/vitest-dev/vitest/commit/21e58bd8)
- **reporter**: Support `includeConsoleOutput` and `addFileAttribute` in
junit  -  by [@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5659](https://togithub.com/vitest-dev/vitest/issues/5659)
[<samp>(2f913)</samp>](https://togithub.com/vitest-dev/vitest/commit/2f913222)
- **ui**: Sort items by file name  -  by
[@&#8203;btea](https://togithub.com/btea) in
[https://github.com/vitest-dev/vitest/issues/5652](https://togithub.com/vitest-dev/vitest/issues/5652)
[<samp>(1f726)</samp>](https://togithub.com/vitest-dev/vitest/commit/1f7268fa)

#####    🐞 Bug Fixes

- Keep order of arguments for .each in custom task collectors  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5640](https://togithub.com/vitest-dev/vitest/issues/5640)
[<samp>(7d57c)</samp>](https://togithub.com/vitest-dev/vitest/commit/7d57c116)
- Call `resolveId('vitest')` after `buildStart`  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5646](https://togithub.com/vitest-dev/vitest/issues/5646)
[<samp>(f5faf)</samp>](https://togithub.com/vitest-dev/vitest/commit/f5faf423)
- Hash the name of the file when caching  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5654](https://togithub.com/vitest-dev/vitest/issues/5654)
[<samp>(c9e68)</samp>](https://togithub.com/vitest-dev/vitest/commit/c9e68ced)
- Don't panic on empty files in node_modules  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va)
[<samp>(40c29)</samp>](https://togithub.com/vitest-dev/vitest/commit/40c299fe)
- Use `toJSON` for error serialization  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5526](https://togithub.com/vitest-dev/vitest/issues/5526)
[<samp>(19a21)</samp>](https://togithub.com/vitest-dev/vitest/commit/19a21e49)
-   **coverage**:
- Exclude `*.test-d.*` by default  -  by
[@&#8203;MindfulPol](https://togithub.com/MindfulPol) in
[https://github.com/vitest-dev/vitest/issues/5634](https://togithub.com/vitest-dev/vitest/issues/5634)
[<samp>(bfe8a)</samp>](https://togithub.com/vitest-dev/vitest/commit/bfe8ad9d)
- Apply `vite-node`'s wrapper only to executed files  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/5642](https://togithub.com/vitest-dev/vitest/issues/5642)
[<samp>(c9883)</samp>](https://togithub.com/vitest-dev/vitest/commit/c9883f3e)
-   **vm**:
- Support network imports  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5610](https://togithub.com/vitest-dev/vitest/issues/5610)
[<samp>(103a6)</samp>](https://togithub.com/vitest-dev/vitest/commit/103a6002)

#####    🏎 Performance

- Improve performance of forks pool  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5592](https://togithub.com/vitest-dev/vitest/issues/5592)
[<samp>(d8304)</samp>](https://togithub.com/vitest-dev/vitest/commit/d8304bb4)
- Unnecessary rpc call when coverage is disabled  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/5658](https://togithub.com/vitest-dev/vitest/issues/5658)
[<samp>(c5712)</samp>](https://togithub.com/vitest-dev/vitest/commit/c571276a)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v1.5.3...v1.6.0)

###
[`v1.5.3`](https://togithub.com/vitest-dev/vitest/releases/tag/v1.5.3)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v1.5.2...v1.5.3)

#####    🐞 Bug Fixes

- Use package.json name for a workspace project if not provided  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5608](https://togithub.com/vitest-dev/vitest/issues/5608)
[<samp>(48fba)</samp>](https://togithub.com/vitest-dev/vitest/commit/48fba190)
- Backport jest iterable equality within object  -  by
[@&#8203;sukovanej](https://togithub.com/sukovanej) in
[https://github.com/vitest-dev/vitest/issues/5621](https://togithub.com/vitest-dev/vitest/issues/5621)
[<samp>(30e5d)</samp>](https://togithub.com/vitest-dev/vitest/commit/30e5dc1b)
- **browser**: Support benchmark  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5622](https://togithub.com/vitest-dev/vitest/issues/5622)
[<samp>(becab)</samp>](https://togithub.com/vitest-dev/vitest/commit/becabb5e)
- **reporter**: Use default error formatter for JUnit  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5629](https://togithub.com/vitest-dev/vitest/issues/5629)
[<samp>(20060)</samp>](https://togithub.com/vitest-dev/vitest/commit/200609cc)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v1.5.2...v1.5.3)

</details>

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v5.2.11`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small5211-2024-05-02-small)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v5.2.10...v5.2.11)

- feat: improve dynamic import variable failure error message
([#&#8203;16519](https://togithub.com/vitejs/vite/issues/16519))
([f8feeea](https://togithub.com/vitejs/vite/commit/f8feeea)), closes
[#&#8203;16519](https://togithub.com/vitejs/vite/issues/16519)
- fix: dynamic-import-vars plugin normalize path issue
([#&#8203;16518](https://togithub.com/vitejs/vite/issues/16518))
([f71ba5b](https://togithub.com/vitejs/vite/commit/f71ba5b)), closes
[#&#8203;16518](https://togithub.com/vitejs/vite/issues/16518)
- fix: scripts and styles were missing from built HTML on Windows
([#&#8203;16421](https://togithub.com/vitejs/vite/issues/16421))
([0e93f58](https://togithub.com/vitejs/vite/commit/0e93f58)), closes
[#&#8203;16421](https://togithub.com/vitejs/vite/issues/16421)
- fix(deps): update all non-major dependencies
([#&#8203;16488](https://togithub.com/vitejs/vite/issues/16488))
([2d50be2](https://togithub.com/vitejs/vite/commit/2d50be2)), closes
[#&#8203;16488](https://togithub.com/vitejs/vite/issues/16488)
- fix(deps): update all non-major dependencies
([#&#8203;16549](https://togithub.com/vitejs/vite/issues/16549))
([2d6a13b](https://togithub.com/vitejs/vite/commit/2d6a13b)), closes
[#&#8203;16549](https://togithub.com/vitejs/vite/issues/16549)
- fix(dev): watch publicDir explicitly to include it outside the root
([#&#8203;16502](https://togithub.com/vitejs/vite/issues/16502))
([4d83eb5](https://togithub.com/vitejs/vite/commit/4d83eb5)), closes
[#&#8203;16502](https://togithub.com/vitejs/vite/issues/16502)
- fix(preload): skip preload for non-static urls
([#&#8203;16556](https://togithub.com/vitejs/vite/issues/16556))
([bb79c9b](https://togithub.com/vitejs/vite/commit/bb79c9b)), closes
[#&#8203;16556](https://togithub.com/vitejs/vite/issues/16556)
- fix(ssr): handle class declaration and expression name scoping
([#&#8203;16569](https://togithub.com/vitejs/vite/issues/16569))
([c071eb3](https://togithub.com/vitejs/vite/commit/c071eb3)), closes
[#&#8203;16569](https://togithub.com/vitejs/vite/issues/16569)
- fix(ssr): handle function expression name scoping
([#&#8203;16563](https://togithub.com/vitejs/vite/issues/16563))
([02db947](https://togithub.com/vitejs/vite/commit/02db947)), closes
[#&#8203;16563](https://togithub.com/vitejs/vite/issues/16563)

</details>

<details>
<summary>vuejs/core (vue)</summary>

###
[`v3.4.26`](https://togithub.com/vuejs/core/blob/HEAD/CHANGELOG.md#3426-2024-04-29)

[Compare
Source](https://togithub.com/vuejs/core/compare/v3.4.25...v3.4.26)

##### Bug Fixes

- **compiler-core:** fix bail constant for globals
([fefce06](https://togithub.com/vuejs/core/commit/fefce06b41e3b75de3d748dc6399628ec5056e78))
- **compiler-core:** remove unnecessary constant bail check
([09b4df8](https://togithub.com/vuejs/core/commit/09b4df809e59ef5f4bc91acfc56dc8f82a8e243a)),
closes [#&#8203;10807](https://togithub.com/vuejs/core/issues/10807)
- **runtime-core:** attrs should be readonly in functional components
([#&#8203;10767](https://togithub.com/vuejs/core/issues/10767))
([e8fd644](https://togithub.com/vuejs/core/commit/e8fd6446d14a6899e5e8ab1ee394d90088e01844))
- **runtime-core:** ensure slot compiler marker writable
([#&#8203;10825](https://togithub.com/vuejs/core/issues/10825))
([9c2de62](https://togithub.com/vuejs/core/commit/9c2de6244cd44bc5fbfd82b5850c710ce725044f)),
closes [#&#8203;10818](https://togithub.com/vuejs/core/issues/10818)
- **runtime-core:** properly handle inherit transition during clone
VNode ([#&#8203;10809](https://togithub.com/vuejs/core/issues/10809))
([638a79f](https://togithub.com/vuejs/core/commit/638a79f64a7e184f2a2c65e21d764703f4bda561)),
closes [#&#8203;3716](https://togithub.com/vuejs/core/issues/3716)
[#&#8203;10497](https://togithub.com/vuejs/core/issues/10497)
[#&#8203;4091](https://togithub.com/vuejs/core/issues/4091)
- **Transition:** re-fix
[#&#8203;10620](https://togithub.com/vuejs/core/issues/10620)
([#&#8203;10832](https://togithub.com/vuejs/core/issues/10832))
([accf839](https://togithub.com/vuejs/core/commit/accf8396ae1c9dd49759ba0546483f1d2c70c9bc)),
closes [#&#8203;10632](https://togithub.com/vuejs/core/issues/10632)
[#&#8203;10827](https://togithub.com/vuejs/core/issues/10827)

</details>

<details>
<summary>vuejs/language-tools (vue-tsc)</summary>

###
[`v2.0.16`](https://togithub.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2016-202451)

[Compare
Source](https://togithub.com/vuejs/language-tools/compare/v2.0.15...v2.0.16)

##### Bug Fixes

- **language-core:** virtual document language ID is not updated when
changing SFC style block lang
- **language-core:** correct logic for `defineSlots` destructuring
([#&#8203;4326](https://togithub.com/vuejs/language-tools/issues/4326))
- Thanks [@&#8203;zhiyuanzmj](https://togithub.com/zhiyuanzmj)
- **language-core:** ObjectDirective does not work with `defineSlots`
([#&#8203;4327](https://togithub.com/vuejs/language-tools/issues/4327))
- **language-service:** emmet not working in postcss style block
([https://github.com/volarjs/volar.js/issues/169](https://togithub.com/volarjs/volar.js/issues/169))

##### Other Changes

- Upgrade to [Volar
2.2](https://togithub.com/volarjs/volar.js/releases/tag/v2.2.0)
- **language-core:** export `VueEmbeddedCode`
([#&#8203;4265](https://togithub.com/vuejs/language-tools/issues/4265))
- Thanks [@&#8203;zhiyuanzmj](https://togithub.com/zhiyuanzmj)
- **typescript-plugin:** expose `FileRegistry` to `project.program`
([#&#8203;3963](https://togithub.com/vuejs/language-tools/issues/3963))
- Thanks [@&#8203;zcf0508](https://togithub.com/zcf0508)
- **vscode:** remove outdated formatters section
([#&#8203;4243](https://togithub.com/vuejs/language-tools/issues/4243))
- Thanks [@&#8203;BBboy01](https://togithub.com/BBboy01)

###
[`v2.0.15`](https://togithub.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2015-2024430)

[Compare
Source](https://togithub.com/vuejs/language-tools/compare/v2.0.14...v2.0.15)

##### Features

- Redesign additional extensions, VitePress, PetiteVue support
([#&#8203;4321](https://togithub.com/vuejs/language-tools/issues/4321))
- Fix custom file extensions not working in Hybrid Mode
([#&#8203;4251](https://togithub.com/vuejs/language-tools/issues/4251))
- **vscode:** prompt when Hybrid Mode is explicitly enabled but known
incompatible extensions are installed
- **language-core:** use internal options for directly exposing user
props/emits types
([vuejs/core#10801](https://togithub.com/vuejs/core/pull/10801))
- **language-core:** support defineSlots destructuring
([#&#8203;4312](https://togithub.com/vuejs/language-tools/issues/4312))
- Thanks [@&#8203;zhiyuanzmj](https://togithub.com/zhiyuanzmj)

##### Bug Fixes

- **vscode:** when enabled VitePress support, extension not activated
when opening markdown files
-   **language-core:** auto-complete not working in v-bind

##### Performance

- **language-service:** emmet completion should not be blocked by TS
type evaluation
([#&#8203;4298](https://togithub.com/vuejs/language-tools/issues/4298))
-   **language-core:** simplify virtual code for intrinsic elements

##### Other Changes

-   Upgrade Volar from `v2.2.0-alpha.10` to `v2.2.0-alpha.12`:
    -   Avoid extension crash when workspace TSDK does not exist
- Fix template variables cannot be renamed at the first character in
Hybrid Mode
([#&#8203;4297](https://togithub.com/vuejs/language-tools/issues/4297))
- Fix template virtual code mapping is misaligned in Windows in Hybrid
Mode
([#&#8203;4297](https://togithub.com/vuejs/language-tools/issues/4297))
- Add `svelte.svelte-vscode` (>=108.4.0) to Hybrid Mode compatibility
whitelist
([sveltejs/language-tools#2317](https://togithub.com/sveltejs/language-tools/pull/2317))
-   **component-meta:** convert source code to TS
- **language-core:** export `allCodeFeatures`
([#&#8203;4320](https://togithub.com/vuejs/language-tools/issues/4320))
- Thanks [@&#8203;zhiyuanzmj](https://togithub.com/zhiyuanzmj)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone
Europe/Helsinki, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/slipmatio/ui).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to slipmatio/toolbelt that referenced this pull request May 6, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.12.7` ->
`20.12.8`](https://renovatebot.com/diffs/npm/@types%2fnode/20.12.7/20.12.8)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.12.7/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.12.7/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitest/coverage-v8](https://togithub.com/vitest-dev/vitest/tree/main/packages/coverage-v8#readme)
([source](https://togithub.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8))
| [`1.5.2` ->
`1.6.0`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/1.5.2/1.6.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-v8/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-v8/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-v8/1.5.2/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-v8/1.5.2/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite](https://vitejs.dev)
([source](https://togithub.com/vitejs/vite/tree/HEAD/packages/vite)) |
[`5.2.10` ->
`5.2.11`](https://renovatebot.com/diffs/npm/vite/5.2.10/5.2.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.2.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.2.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.2.10/5.2.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.2.10/5.2.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://togithub.com/vitest-dev/vitest)
([source](https://togithub.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`1.5.2` ->
`1.6.0`](https://renovatebot.com/diffs/npm/vitest/1.5.2/1.6.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/1.5.2/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/1.5.2/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue](https://togithub.com/vuejs/core/tree/main/packages/vue#readme)
([source](https://togithub.com/vuejs/core)) | [`3.4.25` ->
`3.4.26`](https://renovatebot.com/diffs/npm/vue/3.4.25/3.4.26) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.4.26?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue/3.4.26?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue/3.4.25/3.4.26?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.4.25/3.4.26?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue-tsc](https://togithub.com/vuejs/language-tools)
([source](https://togithub.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`2.0.14` ->
`2.0.16`](https://renovatebot.com/diffs/npm/vue-tsc/2.0.14/2.0.16) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/2.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/2.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/2.0.14/2.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/2.0.14/2.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest (@&#8203;vitest/coverage-v8)</summary>

###
[`v1.6.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v1.6.0)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v1.5.3...v1.6.0)

#####    🚀 Features

- Support standalone mode  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5565](https://togithub.com/vitest-dev/vitest/issues/5565)
[<samp>(bdce0)</samp>](https://togithub.com/vitest-dev/vitest/commit/bdce0a29)
- Custom "snapshotEnvironment" option  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5449](https://togithub.com/vitest-dev/vitest/issues/5449)
[<samp>(30f72)</samp>](https://togithub.com/vitest-dev/vitest/commit/30f728bc)
- **benchmark**: Support comparing benchmark result  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) and
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5398](https://togithub.com/vitest-dev/vitest/issues/5398)
[<samp>(f8d3d)</samp>](https://togithub.com/vitest-dev/vitest/commit/f8d3d22e)
- **browser**: Allow injecting scripts  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5656](https://togithub.com/vitest-dev/vitest/issues/5656)
[<samp>(21e58)</samp>](https://togithub.com/vitest-dev/vitest/commit/21e58bd8)
- **reporter**: Support `includeConsoleOutput` and `addFileAttribute` in
junit  -  by [@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5659](https://togithub.com/vitest-dev/vitest/issues/5659)
[<samp>(2f913)</samp>](https://togithub.com/vitest-dev/vitest/commit/2f913222)
- **ui**: Sort items by file name  -  by
[@&#8203;btea](https://togithub.com/btea) in
[https://github.com/vitest-dev/vitest/issues/5652](https://togithub.com/vitest-dev/vitest/issues/5652)
[<samp>(1f726)</samp>](https://togithub.com/vitest-dev/vitest/commit/1f7268fa)

#####    🐞 Bug Fixes

- Keep order of arguments for .each in custom task collectors  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5640](https://togithub.com/vitest-dev/vitest/issues/5640)
[<samp>(7d57c)</samp>](https://togithub.com/vitest-dev/vitest/commit/7d57c116)
- Call `resolveId('vitest')` after `buildStart`  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5646](https://togithub.com/vitest-dev/vitest/issues/5646)
[<samp>(f5faf)</samp>](https://togithub.com/vitest-dev/vitest/commit/f5faf423)
- Hash the name of the file when caching  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5654](https://togithub.com/vitest-dev/vitest/issues/5654)
[<samp>(c9e68)</samp>](https://togithub.com/vitest-dev/vitest/commit/c9e68ced)
- Don't panic on empty files in node_modules  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va)
[<samp>(40c29)</samp>](https://togithub.com/vitest-dev/vitest/commit/40c299fe)
- Use `toJSON` for error serialization  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5526](https://togithub.com/vitest-dev/vitest/issues/5526)
[<samp>(19a21)</samp>](https://togithub.com/vitest-dev/vitest/commit/19a21e49)
-   **coverage**:
- Exclude `*.test-d.*` by default  -  by
[@&#8203;MindfulPol](https://togithub.com/MindfulPol) in
[https://github.com/vitest-dev/vitest/issues/5634](https://togithub.com/vitest-dev/vitest/issues/5634)
[<samp>(bfe8a)</samp>](https://togithub.com/vitest-dev/vitest/commit/bfe8ad9d)
- Apply `vite-node`'s wrapper only to executed files  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/5642](https://togithub.com/vitest-dev/vitest/issues/5642)
[<samp>(c9883)</samp>](https://togithub.com/vitest-dev/vitest/commit/c9883f3e)
-   **vm**:
- Support network imports  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5610](https://togithub.com/vitest-dev/vitest/issues/5610)
[<samp>(103a6)</samp>](https://togithub.com/vitest-dev/vitest/commit/103a6002)

#####    🏎 Performance

- Improve performance of forks pool  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5592](https://togithub.com/vitest-dev/vitest/issues/5592)
[<samp>(d8304)</samp>](https://togithub.com/vitest-dev/vitest/commit/d8304bb4)
- Unnecessary rpc call when coverage is disabled  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/5658](https://togithub.com/vitest-dev/vitest/issues/5658)
[<samp>(c5712)</samp>](https://togithub.com/vitest-dev/vitest/commit/c571276a)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v1.5.3...v1.6.0)

###
[`v1.5.3`](https://togithub.com/vitest-dev/vitest/releases/tag/v1.5.3)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v1.5.2...v1.5.3)

#####    🐞 Bug Fixes

- Use package.json name for a workspace project if not provided  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/5608](https://togithub.com/vitest-dev/vitest/issues/5608)
[<samp>(48fba)</samp>](https://togithub.com/vitest-dev/vitest/commit/48fba190)
- Backport jest iterable equality within object  -  by
[@&#8203;sukovanej](https://togithub.com/sukovanej) in
[https://github.com/vitest-dev/vitest/issues/5621](https://togithub.com/vitest-dev/vitest/issues/5621)
[<samp>(30e5d)</samp>](https://togithub.com/vitest-dev/vitest/commit/30e5dc1b)
- **browser**: Support benchmark  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5622](https://togithub.com/vitest-dev/vitest/issues/5622)
[<samp>(becab)</samp>](https://togithub.com/vitest-dev/vitest/commit/becabb5e)
- **reporter**: Use default error formatter for JUnit  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/5629](https://togithub.com/vitest-dev/vitest/issues/5629)
[<samp>(20060)</samp>](https://togithub.com/vitest-dev/vitest/commit/200609cc)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v1.5.2...v1.5.3)

</details>

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v5.2.11`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small5211-2024-05-02-small)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v5.2.10...v5.2.11)

- feat: improve dynamic import variable failure error message
([#&#8203;16519](https://togithub.com/vitejs/vite/issues/16519))
([f8feeea](https://togithub.com/vitejs/vite/commit/f8feeea)), closes
[#&#8203;16519](https://togithub.com/vitejs/vite/issues/16519)
- fix: dynamic-import-vars plugin normalize path issue
([#&#8203;16518](https://togithub.com/vitejs/vite/issues/16518))
([f71ba5b](https://togithub.com/vitejs/vite/commit/f71ba5b)), closes
[#&#8203;16518](https://togithub.com/vitejs/vite/issues/16518)
- fix: scripts and styles were missing from built HTML on Windows
([#&#8203;16421](https://togithub.com/vitejs/vite/issues/16421))
([0e93f58](https://togithub.com/vitejs/vite/commit/0e93f58)), closes
[#&#8203;16421](https://togithub.com/vitejs/vite/issues/16421)
- fix(deps): update all non-major dependencies
([#&#8203;16488](https://togithub.com/vitejs/vite/issues/16488))
([2d50be2](https://togithub.com/vitejs/vite/commit/2d50be2)), closes
[#&#8203;16488](https://togithub.com/vitejs/vite/issues/16488)
- fix(deps): update all non-major dependencies
([#&#8203;16549](https://togithub.com/vitejs/vite/issues/16549))
([2d6a13b](https://togithub.com/vitejs/vite/commit/2d6a13b)), closes
[#&#8203;16549](https://togithub.com/vitejs/vite/issues/16549)
- fix(dev): watch publicDir explicitly to include it outside the root
([#&#8203;16502](https://togithub.com/vitejs/vite/issues/16502))
([4d83eb5](https://togithub.com/vitejs/vite/commit/4d83eb5)), closes
[#&#8203;16502](https://togithub.com/vitejs/vite/issues/16502)
- fix(preload): skip preload for non-static urls
([#&#8203;16556](https://togithub.com/vitejs/vite/issues/16556))
([bb79c9b](https://togithub.com/vitejs/vite/commit/bb79c9b)), closes
[#&#8203;16556](https://togithub.com/vitejs/vite/issues/16556)
- fix(ssr): handle class declaration and expression name scoping
([#&#8203;16569](https://togithub.com/vitejs/vite/issues/16569))
([c071eb3](https://togithub.com/vitejs/vite/commit/c071eb3)), closes
[#&#8203;16569](https://togithub.com/vitejs/vite/issues/16569)
- fix(ssr): handle function expression name scoping
([#&#8203;16563](https://togithub.com/vitejs/vite/issues/16563))
([02db947](https://togithub.com/vitejs/vite/commit/02db947)), closes
[#&#8203;16563](https://togithub.com/vitejs/vite/issues/16563)

</details>

<details>
<summary>vuejs/core (vue)</summary>

###
[`v3.4.26`](https://togithub.com/vuejs/core/blob/HEAD/CHANGELOG.md#3426-2024-04-29)

[Compare
Source](https://togithub.com/vuejs/core/compare/v3.4.25...v3.4.26)

##### Bug Fixes

- **compiler-core:** fix bail constant for globals
([fefce06](https://togithub.com/vuejs/core/commit/fefce06b41e3b75de3d748dc6399628ec5056e78))
- **compiler-core:** remove unnecessary constant bail check
([09b4df8](https://togithub.com/vuejs/core/commit/09b4df809e59ef5f4bc91acfc56dc8f82a8e243a)),
closes [#&#8203;10807](https://togithub.com/vuejs/core/issues/10807)
- **runtime-core:** attrs should be readonly in functional components
([#&#8203;10767](https://togithub.com/vuejs/core/issues/10767))
([e8fd644](https://togithub.com/vuejs/core/commit/e8fd6446d14a6899e5e8ab1ee394d90088e01844))
- **runtime-core:** ensure slot compiler marker writable
([#&#8203;10825](https://togithub.com/vuejs/core/issues/10825))
([9c2de62](https://togithub.com/vuejs/core/commit/9c2de6244cd44bc5fbfd82b5850c710ce725044f)),
closes [#&#8203;10818](https://togithub.com/vuejs/core/issues/10818)
- **runtime-core:** properly handle inherit transition during clone
VNode ([#&#8203;10809](https://togithub.com/vuejs/core/issues/10809))
([638a79f](https://togithub.com/vuejs/core/commit/638a79f64a7e184f2a2c65e21d764703f4bda561)),
closes [#&#8203;3716](https://togithub.com/vuejs/core/issues/3716)
[#&#8203;10497](https://togithub.com/vuejs/core/issues/10497)
[#&#8203;4091](https://togithub.com/vuejs/core/issues/4091)
- **Transition:** re-fix
[#&#8203;10620](https://togithub.com/vuejs/core/issues/10620)
([#&#8203;10832](https://togithub.com/vuejs/core/issues/10832))
([accf839](https://togithub.com/vuejs/core/commit/accf8396ae1c9dd49759ba0546483f1d2c70c9bc)),
closes [#&#8203;10632](https://togithub.com/vuejs/core/issues/10632)
[#&#8203;10827](https://togithub.com/vuejs/core/issues/10827)

</details>

<details>
<summary>vuejs/language-tools (vue-tsc)</summary>

###
[`v2.0.16`](https://togithub.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2016-202451)

[Compare
Source](https://togithub.com/vuejs/language-tools/compare/v2.0.15...v2.0.16)

##### Bug Fixes

- **language-core:** virtual document language ID is not updated when
changing SFC style block lang
- **language-core:** correct logic for `defineSlots` destructuring
([#&#8203;4326](https://togithub.com/vuejs/language-tools/issues/4326))
- Thanks [@&#8203;zhiyuanzmj](https://togithub.com/zhiyuanzmj)
- **language-core:** ObjectDirective does not work with `defineSlots`
([#&#8203;4327](https://togithub.com/vuejs/language-tools/issues/4327))
- **language-service:** emmet not working in postcss style block
([https://github.com/volarjs/volar.js/issues/169](https://togithub.com/volarjs/volar.js/issues/169))

##### Other Changes

- Upgrade to [Volar
2.2](https://togithub.com/volarjs/volar.js/releases/tag/v2.2.0)
- **language-core:** export `VueEmbeddedCode`
([#&#8203;4265](https://togithub.com/vuejs/language-tools/issues/4265))
- Thanks [@&#8203;zhiyuanzmj](https://togithub.com/zhiyuanzmj)
- **typescript-plugin:** expose `FileRegistry` to `project.program`
([#&#8203;3963](https://togithub.com/vuejs/language-tools/issues/3963))
- Thanks [@&#8203;zcf0508](https://togithub.com/zcf0508)
- **vscode:** remove outdated formatters section
([#&#8203;4243](https://togithub.com/vuejs/language-tools/issues/4243))
- Thanks [@&#8203;BBboy01](https://togithub.com/BBboy01)

###
[`v2.0.15`](https://togithub.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2015-2024430)

[Compare
Source](https://togithub.com/vuejs/language-tools/compare/v2.0.14...v2.0.15)

##### Features

- Redesign additional extensions, VitePress, PetiteVue support
([#&#8203;4321](https://togithub.com/vuejs/language-tools/issues/4321))
- Fix custom file extensions not working in Hybrid Mode
([#&#8203;4251](https://togithub.com/vuejs/language-tools/issues/4251))
- **vscode:** prompt when Hybrid Mode is explicitly enabled but known
incompatible extensions are installed
- **language-core:** use internal options for directly exposing user
props/emits types
([vuejs/core#10801](https://togithub.com/vuejs/core/pull/10801))
- **language-core:** support defineSlots destructuring
([#&#8203;4312](https://togithub.com/vuejs/language-tools/issues/4312))
- Thanks [@&#8203;zhiyuanzmj](https://togithub.com/zhiyuanzmj)

##### Bug Fixes

- **vscode:** when enabled VitePress support, extension not activated
when opening markdown files
-   **language-core:** auto-complete not working in v-bind

##### Performance

- **language-service:** emmet completion should not be blocked by TS
type evaluation
([#&#8203;4298](https://togithub.com/vuejs/language-tools/issues/4298))
-   **language-core:** simplify virtual code for intrinsic elements

##### Other Changes

-   Upgrade Volar from `v2.2.0-alpha.10` to `v2.2.0-alpha.12`:
    -   Avoid extension crash when workspace TSDK does not exist
- Fix template variables cannot be renamed at the first character in
Hybrid Mode
([#&#8203;4297](https://togithub.com/vuejs/language-tools/issues/4297))
- Fix template virtual code mapping is misaligned in Windows in Hybrid
Mode
([#&#8203;4297](https://togithub.com/vuejs/language-tools/issues/4297))
- Add `svelte.svelte-vscode` (>=108.4.0) to Hybrid Mode compatibility
whitelist
([sveltejs/language-tools#2317](https://togithub.com/sveltejs/language-tools/pull/2317))
-   **component-meta:** convert source code to TS
- **language-core:** export `allCodeFeatures`
([#&#8203;4320](https://togithub.com/vuejs/language-tools/issues/4320))
- Thanks [@&#8203;zhiyuanzmj](https://togithub.com/zhiyuanzmj)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone
Europe/Helsinki, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/slipmatio/toolbelt).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
elibosley pushed a commit to unraid/api that referenced this pull request Feb 21, 2025
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vue-tsc](https://redirect.github.com/vuejs/language-tools)
([source](https://redirect.github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`^1.8.0` ->
`^2.0.0`](https://renovatebot.com/diffs/npm/vue-tsc/1.8.27/2.2.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/1.8.27/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/1.8.27/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vuejs/language-tools (vue-tsc)</summary>

###
[`v2.2.2`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#222-supofficialsup-223-supinsiderssup-2025-02-15)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.2.0...v2.2.2)

##### Features

- feat(language-core): navigation support for `$attrs`, `$slots`,
`$refs` and `$el` in the template
([#&#8203;5056](https://redirect.github.com/vuejs/language-tools/issues/5056))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(language-service): support global directives completion
([#&#8203;4989](https://redirect.github.com/vuejs/language-tools/issues/4989))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(language-core): type support of `useAttrs`
([#&#8203;5106](https://redirect.github.com/vuejs/language-tools/issues/5106))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(language-core): add options for fine-grained configuration of
`strictTemplates`
([#&#8203;5138](https://redirect.github.com/vuejs/language-tools/issues/5138))
- feat(language-service): display deprecated info of props in completion
([#&#8203;5134](https://redirect.github.com/vuejs/language-tools/issues/5134))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(component-meta): collect destructured props defaults
([#&#8203;5101](https://redirect.github.com/vuejs/language-tools/issues/5101))
- Thanks to [@&#8203;Akryum](https://redirect.github.com/Akryum)!
- feat(language-core): add `checkUnknownDirectives` option
([#&#8203;5141](https://redirect.github.com/vuejs/language-tools/issues/5141))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(language-core): support `<script vapor>` - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Bug Fixes

- fix(language-core): ignore ts errors in function-scoped declare
expressions
([#&#8203;5090](https://redirect.github.com/vuejs/language-tools/issues/5090))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- fix(language-core, typescript-plugin): handle self-reference component
correctly
([#&#8203;5102](https://redirect.github.com/vuejs/language-tools/issues/5102))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): do not generate element for `<template>` with
`v-slot`
([#&#8203;5077](https://redirect.github.com/vuejs/language-tools/issues/5077))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-service): set code action kinds to avoid warning
([#&#8203;5096](https://redirect.github.com/vuejs/language-tools/issues/5096))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
-   fix(language-core): handle parentheses in v-for exp
- fix(language-core): slot exp formatting virtual code syntax incorrect
- fix(language-core): arrow function formatting virtual code syntax
incorrect in interpolation
-   fix(language-core): improve multiple lines event formatting result
-   fix(language-core): prefer `loc.source` instead of node content
- fix(language-core): intersect local `$attrs` with `__VLS_ctx.$attrs`
([#&#8203;5113](https://redirect.github.com/vuejs/language-tools/issues/5113))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): only generate model modifiers for components -
Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-plugin-pug): ignore duplicate attribute error of `class`
([#&#8203;5100](https://redirect.github.com/vuejs/language-tools/issues/5100))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): align types of `v-for` with core
([#&#8203;5084](https://redirect.github.com/vuejs/language-tools/issues/5084))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): map interpolation error with multiple variables
correctly
([#&#8203;5158](https://redirect.github.com/vuejs/language-tools/issues/5158))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(vscode): ask user to reload extension host when configuration
changes
([#&#8203;5160](https://redirect.github.com/vuejs/language-tools/issues/5160))
- Thanks to
[@&#8203;typed-sigterm](https://redirect.github.com/typed-sigterm)!
- fix(typescript-plugin): update component names correctly for the first
time - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): add `undefined` to first param type of optional
model emits
([#&#8203;5171](https://redirect.github.com/vuejs/language-tools/issues/5171))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): intersect `__VLS_slots` with `__VLS_ctx.$slots`
([#&#8203;5083](https://redirect.github.com/vuejs/language-tools/issues/5083))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): complete codegen of slot name prop
([#&#8203;5139](https://redirect.github.com/vuejs/language-tools/issues/5139))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Other Changes

- refactor(language-service): read ast from codegen instead of parsing
it repeatedly
([#&#8203;5086](https://redirect.github.com/vuejs/language-tools/issues/5086))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(language-core): rewrite `vueCompilerOptions` resolution logic
- refactor(component-meta): read `scriptSetupRanges` from codegen -
Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(component-meta): read node directly instead of creating sub
ast - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(component-meta): read ast from `sfc.script` - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(language-core): generate the type of slots with function
property
([#&#8203;5173](https://redirect.github.com/vuejs/language-tools/issues/5173))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(language-core): reduce codegen size of template returns -
Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(language-core): remove semantic highlight of directives -
Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor: update alien-signals to 1.0.3
([#&#8203;5181](https://redirect.github.com/vuejs/language-tools/issues/5181))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

###
[`v2.2.0`](https://redirect.github.com/vuejs/language-tools/compare/v2.1.10...5babca774658d4b9afbe877ac7c8cafdaecf2c3e)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.10...v2.2.0)

###
[`v2.1.10`](https://redirect.github.com/vuejs/language-tools/compare/v2.1.8...b0af30caee2f8dfb1a8393c1b400f38e31fa4883)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.8...v2.1.10)

###
[`v2.1.8`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#218-supofficialsup-219-supinsiderssup-2024-10-26)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.6...v2.1.8)

##### Features

- **vscode:** reactions visualization now identifies more use cases
<sup>Insiders</sup>
- **language-core:** auto infer `$el` type
([#&#8203;4805](https://redirect.github.com/vuejs/language-tools/issues/4805))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** typed directive arg and modifiers
([#&#8203;4813](https://redirect.github.com/vuejs/language-tools/issues/4813))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Bug Fixes

- **language-core:** avoid generic type loss due to destructured props
([#&#8203;4821](https://redirect.github.com/vuejs/language-tools/issues/4821))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** handle `v-for` with `v-once` correctly
([#&#8203;4830](https://redirect.github.com/vuejs/language-tools/issues/4830))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** avoid generating zero-length mappings for
interpolation edges
- **language-core:** don't assign `this` to `__VLS_ctx`
([#&#8203;4845](https://redirect.github.com/vuejs/language-tools/issues/4845))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** initialize scope with null prototype object
([#&#8203;4855](https://redirect.github.com/vuejs/language-tools/issues/4855))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** inlay hints for `<component :is>` and `<slot
:name>`
([#&#8203;4661](https://redirect.github.com/vuejs/language-tools/issues/4661))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX),
[@&#8203;so1ve](https://redirect.github.com/so1ve)!
- **language-core:** should error when invalid syntax at script end
([#&#8203;4692](https://redirect.github.com/vuejs/language-tools/issues/4692))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** correct type inference of `defineModel` &
`defineEmits` in generic
([#&#8203;4823](https://redirect.github.com/vuejs/language-tools/issues/4823))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** inject generics of `useTemplateRef` into correct
location
([#&#8203;4829](https://redirect.github.com/vuejs/language-tools/issues/4829))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** prevent the generation of generics in JS
([#&#8203;4836](https://redirect.github.com/vuejs/language-tools/issues/4836))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX),
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** generate correct reference for `v-on` on `<slot>`
([#&#8203;4864](https://redirect.github.com/vuejs/language-tools/issues/4864))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** match classname before `)`
([#&#8203;4887](https://redirect.github.com/vuejs/language-tools/issues/4887))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** handle internal item key with leading slash
correctly
([#&#8203;4894](https://redirect.github.com/vuejs/language-tools/issues/4894))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** correctly obtain the index of style modules
([#&#8203;4907](https://redirect.github.com/vuejs/language-tools/issues/4907))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** refer absolute path of global types file
([#&#8203;4924](https://redirect.github.com/vuejs/language-tools/issues/4924))
- Thanks to
[@&#8203;depressedX](https://redirect.github.com/depressedX)!
- **component-meta:** error when signatures is undefined
([#&#8203;4930](https://redirect.github.com/vuejs/language-tools/issues/4930))
- Thanks to
[@&#8203;Hannesrasmussen](https://redirect.github.com/Hannesrasmussen)!
- **language-core:** intersect props of generic component with attrs
([#&#8203;4886](https://redirect.github.com/vuejs/language-tools/issues/4886))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** fix incorrect syntax for class component virtual
code
- **language-core:** generate `value` instead of model name into tuple
([#&#8203;4892](https://redirect.github.com/vuejs/language-tools/issues/4892))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** infer template ref's type of native elements with
`v-for` correctly
([#&#8203;4933](https://redirect.github.com/vuejs/language-tools/issues/4933))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** should wrap item with `Reactive` on `v-for`
([#&#8203;4902](https://redirect.github.com/vuejs/language-tools/issues/4902))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Performance

- **language-service:** find destructured props only with enabled
setting
([#&#8203;4815](https://redirect.github.com/vuejs/language-tools/issues/4815))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Other Changes

-   Upgraded Volar from `v2.4.1` to `v2.4.8`:
- Changing vue files causes internal state to desync in Sublime Text
([#&#8203;4909](https://redirect.github.com/vuejs/language-tools/issues/4909))
- Thanks to [@&#8203;rchl](https://redirect.github.com/rchl)!
- The syntax highlighting is not applied when destructuring props
([#&#8203;4811](https://redirect.github.com/vuejs/language-tools/issues/4811))
- chore: fix nvim config snippet in README
([#&#8203;4881](https://redirect.github.com/vuejs/language-tools/issues/4881))
- Thanks to
[@&#8203;LiamEderzeel](https://redirect.github.com/LiamEderzeel)!
- chore: remove side effects
([#&#8203;4871](https://redirect.github.com/vuejs/language-tools/issues/4871))
- Thanks to [@&#8203;vikingair](https://redirect.github.com/vikingair)!
- chore: remove `importsNotUsedAsValues`
([#&#8203;4897](https://redirect.github.com/vuejs/language-tools/issues/4897))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- chore(vscode): switch to `"module": "CommonJS"`
([#&#8203;4944](https://redirect.github.com/vuejs/language-tools/issues/4944))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- test: fix incorrect default value
([#&#8203;4934](https://redirect.github.com/vuejs/language-tools/issues/4934))
- Thanks to [@&#8203;jh-leong](https://redirect.github.com/jh-leong)!
-   test(tsc): add a test case for class component

###
[`v2.1.6`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#216-supofficialsup-217-supinsiderssup-2024-09-05)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/a95b51ac0b0db8825f77fbba37e29932b5be61e4...v2.1.6)

##### Features

- **language-plugin-pug:** support initial indentation
([#&#8203;4774](https://redirect.github.com/vuejs/language-tools/issues/4774))
- **language-service:** JSDoc display support when typing props on
component template
([#&#8203;4796](https://redirect.github.com/vuejs/language-tools/issues/4796))
- Thanks to [@&#8203;joy-yu](https://redirect.github.com/joy-yu)!
- **language-core:** typed directives in template
([#&#8203;4807](https://redirect.github.com/vuejs/language-tools/issues/4807))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Bug Fixes

- **language-core:** wrap template refs with `unref` in interpolation
([#&#8203;4777](https://redirect.github.com/vuejs/language-tools/issues/4777))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** ensure to pass tsc on inline global types
([#&#8203;4782](https://redirect.github.com/vuejs/language-tools/issues/4782))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** infer native template ref as build-in element
interface
([#&#8203;4786](https://redirect.github.com/vuejs/language-tools/issues/4786))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** generate `__VLS_StyleModules` after template
([#&#8203;4790](https://redirect.github.com/vuejs/language-tools/issues/4790))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** make `expose` of non-generic template ref required
([#&#8203;4795](https://redirect.github.com/vuejs/language-tools/issues/4795))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** avoid using `__typeProps` with runtime props
([#&#8203;4800](https://redirect.github.com/vuejs/language-tools/issues/4800))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** ignore unknown attrs error when strictTemplates is
not enabled
([#&#8203;4785](https://redirect.github.com/vuejs/language-tools/issues/4785))
- **language-core:** prevent append globalTypes to virtual file
([#&#8203;4806](https://redirect.github.com/vuejs/language-tools/issues/4806))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** prevent type error when use defineSlots and
non-template
([#&#8203;4809](https://redirect.github.com/vuejs/language-tools/issues/4809))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **typescript-plugin:** disconnect socket on error
([#&#8203;4672](https://redirect.github.com/vuejs/language-tools/issues/4672))

##### Performance

- **language-core:** don't emit event lnlayhint when content is none
([#&#8203;4776](https://redirect.github.com/vuejs/language-tools/issues/4776))
- Thanks to [@&#8203;Gehbt](https://redirect.github.com/Gehbt)!

##### Other Changes

- **language-core:** split `__VLS_templateResult`
([#&#8203;4781](https://redirect.github.com/vuejs/language-tools/issues/4781))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** wrap template virtual code into a function
([#&#8203;4784](https://redirect.github.com/vuejs/language-tools/issues/4784))
- **language-core:** move `templateRef` into `composibles`
([#&#8203;4791](https://redirect.github.com/vuejs/language-tools/issues/4791))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** generate global types for the first parsed Vue
component if cannot write global types file

##### Tests

- **language-server:** add renaming case for template `ref()`
([#&#8203;4794](https://redirect.github.com/vuejs/language-tools/issues/4794))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **tsc:** update to Vue 3.5
([#&#8203;4725](https://redirect.github.com/vuejs/language-tools/issues/4725))
- **tsc:** unknown props on non-strict generic component
([#&#8203;4792](https://redirect.github.com/vuejs/language-tools/issues/4792))

###
[`v2.1.5`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#214-supofficialsup-215-supinsiderssup-2024-09-01)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.4...a95b51ac0b0db8825f77fbba37e29932b5be61e4)

##### Features

- **typescript-plugin, language-server:** generate global types file
into `node_modules/.vue-global-types`
([#&#8203;4752](https://redirect.github.com/vuejs/language-tools/issues/4752))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** navigation support for template-ref
([#&#8203;4726](https://redirect.github.com/vuejs/language-tools/issues/4726))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Bug Fixes

- **language-core, typescript-plugin, language-server:** apply snake
case on globalTypes filename
([#&#8203;4749](https://redirect.github.com/vuejs/language-tools/issues/4749))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** hoist `$refs` type
([#&#8203;4763](https://redirect.github.com/vuejs/language-tools/issues/4763))
- **language-core:** disable lib check on global types file
([#&#8203;4767](https://redirect.github.com/vuejs/language-tools/issues/4767))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** prevent circular reference of templateRef
([#&#8203;4768](https://redirect.github.com/vuejs/language-tools/issues/4768))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
-   **language-core:** using interface merging for `GlobalComponents`
- **language-core:** `fallthroughAttributes` causes global components to
be self-referential
([#&#8203;4761](https://redirect.github.com/vuejs/language-tools/issues/4761))
- **language-core:** auto-completion for the last line of template block
([#&#8203;4771](https://redirect.github.com/vuejs/language-tools/issues/4771))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** update ast correctly on repeated `v-for`
modifications
([#&#8203;4772](https://redirect.github.com/vuejs/language-tools/issues/4772))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-server:** leaking named pipes
([#&#8203;4672](https://redirect.github.com/vuejs/language-tools/issues/4672))
- **typescript-plugin:** compatible with Yarn PnP
([#&#8203;4751](https://redirect.github.com/vuejs/language-tools/issues/4751))
- **vscode:** whitelist `ms-dynamics-smb.al` extension for Vue Hybrid
Mode.
([#&#8203;4765](https://redirect.github.com/vuejs/language-tools/issues/4765))
- Thanks to
[@&#8203;kyleweishaupt](https://redirect.github.com/kyleweishaupt)!

##### Other Changes

- Add optional "dependencies" textarea to issue template
([#&#8203;4758](https://redirect.github.com/vuejs/language-tools/issues/4758))
- Thanks to
[@&#8203;davidmatter](https://redirect.github.com/davidmatter)!

###
[`v2.1.4`](https://redirect.github.com/vuejs/language-tools/compare/v2.1.2...5e197d08eaef57209ff2927c943ba1db3bf4eff6)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.2...v2.1.4)

###
[`v2.1.2`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#212-supofficialsup-213-supinsiderssup-2024-08-29)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.0...v2.1.2)

##### Bug Fixes

- **language-core, typescript-plugin, language-server:** write
globalTypes into dist for correct export
([#&#8203;4740](https://redirect.github.com/vuejs/language-tools/issues/4740))
([#&#8203;4737](https://redirect.github.com/vuejs/language-tools/issues/4737))
([#&#8203;4738](https://redirect.github.com/vuejs/language-tools/issues/4738))
([#&#8203;4739](https://redirect.github.com/vuejs/language-tools/issues/4739))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** don't default `vueCompilerOptions.lib` to
`@vue/runtime-dom` for Vue 2

###
[`v2.1.0`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#210-supofficialsup-211-supinsiderssup-2024-08-29)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.29...v2.1.0)

##### Features

- **language-core:** inlay hints for destructured props
([#&#8203;4634](https://redirect.github.com/vuejs/language-tools/issues/4634))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** typed fallthrough attributes
([#&#8203;4103](https://redirect.github.com/vuejs/language-tools/issues/4103))
- Thanks to [@&#8203;A5rocks](https://redirect.github.com/A5rocks),
[@&#8203;so1ve](https://redirect.github.com/so1ve)!
- **language-core:** document links for classname within `:class`
([#&#8203;4642](https://redirect.github.com/vuejs/language-tools/issues/4642))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** auto infer type for $refs & useTemplateRef
([#&#8203;4644](https://redirect.github.com/vuejs/language-tools/issues/4644))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** type support for CSS Modules API
([#&#8203;4674](https://redirect.github.com/vuejs/language-tools/issues/4674))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** better completion for directives
([#&#8203;4640](https://redirect.github.com/vuejs/language-tools/issues/4640))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** better sorting & filtering of completion
([#&#8203;4671](https://redirect.github.com/vuejs/language-tools/issues/4671))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** add style scoped and module completion
([#&#8203;4705](https://redirect.github.com/vuejs/language-tools/issues/4705))
- Thanks to [@&#8203;runyasak](https://redirect.github.com/runyasak)!

##### Bug Fixes

- **vscode:** type of `vue.server.hybridMode` config
([#&#8203;4703](https://redirect.github.com/vuejs/language-tools/issues/4703))
- Thanks to [@&#8203;KermanX](https://redirect.github.com/KermanX)!
- **language-core:** dependency on vulnerable version of
`vue-template-compiler`
([#&#8203;4613](https://redirect.github.com/vuejs/language-tools/issues/4613))
- Thanks to [@&#8203;yyx990803](https://redirect.github.com/yyx990803)!
- **language-core:** support parse method to access ctx var in object
([#&#8203;4609](https://redirect.github.com/vuejs/language-tools/issues/4609))
- Thanks to [@&#8203;linghaoSu](https://redirect.github.com/linghaoSu)!
- **language-core:** escape \ and ' in className avoid type error
([#&#8203;4619](https://redirect.github.com/vuejs/language-tools/issues/4619))
- Thanks to [@&#8203;linghaoSu](https://redirect.github.com/linghaoSu)!
- **language-core:** semantic highlight of the end tag of namespaced
elements
([#&#8203;4623](https://redirect.github.com/vuejs/language-tools/issues/4623))
- Thanks to [@&#8203;KermanX](https://redirect.github.com/KermanX)!
- **language-core:** nullable modelvalues
([#&#8203;4648](https://redirect.github.com/vuejs/language-tools/issues/4648))
- Thanks to
[@&#8203;davidmatter](https://redirect.github.com/davidmatter)!
- **language-core:** should try casting dynamic slot name into constant
([#&#8203;4669](https://redirect.github.com/vuejs/language-tools/issues/4669))
- Thanks to [@&#8203;KermanX](https://redirect.github.com/KermanX)!
- **language-core:** local name support for prop using runtime api
([#&#8203;4650](https://redirect.github.com/vuejs/language-tools/issues/4650))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** optimize matching of scoped class and `v-bind()`
([#&#8203;4679](https://redirect.github.com/vuejs/language-tools/issues/4679))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** should preserve generic info in directive
([#&#8203;4686](https://redirect.github.com/vuejs/language-tools/issues/4686))
- Thanks to [@&#8203;KermanX](https://redirect.github.com/KermanX)!
- **language-core:** generate `ref` as identifier instead of
interpolation
([#&#8203;4688](https://redirect.github.com/vuejs/language-tools/issues/4688))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** correct type narrowing from script to template
([#&#8203;4689](https://redirect.github.com/vuejs/language-tools/issues/4689))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** should camelize prop name in
`experimentalModelPropName`
([#&#8203;4691](https://redirect.github.com/vuejs/language-tools/issues/4691))
- Thanks to [@&#8203;KermanX](https://redirect.github.com/KermanX)!
- **language-core:** drop duplicate hints on incomplete tag
([#&#8203;4696](https://redirect.github.com/vuejs/language-tools/issues/4696))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** correct inlay hints for v-bind with modifier
([#&#8203;4721](https://redirect.github.com/vuejs/language-tools/issues/4721))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** transform range of `file-md` correctly
([#&#8203;4735](https://redirect.github.com/vuejs/language-tools/issues/4735))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-plugin-pug:** should cache proxyed object
([#&#8203;4626](https://redirect.github.com/vuejs/language-tools/issues/4626))
- Thanks to [@&#8203;KermanX](https://redirect.github.com/KermanX)!
- **language-plugin-pug:** compute offset correctly of pug class
([#&#8203;4652](https://redirect.github.com/vuejs/language-tools/issues/4652))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** completion documentations for binding attributes
([#&#8203;4667](https://redirect.github.com/vuejs/language-tools/issues/4667))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** avoid converting internal id of special tags
([#&#8203;4643](https://redirect.github.com/vuejs/language-tools/issues/4643))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** reinstate the completion for modifiers
([#&#8203;4639](https://redirect.github.com/vuejs/language-tools/issues/4639))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** consistent data from provider for sfc completion
([#&#8203;4645](https://redirect.github.com/vuejs/language-tools/issues/4645))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **typescript-plugin:** unknown request type warning
([#&#8203;4715](https://redirect.github.com/vuejs/language-tools/issues/4715))
- Thanks to
[@&#8203;davidmatter](https://redirect.github.com/davidmatter)!

##### Refactors

-   **language-core:** extract SFC root tags to separate virtual code
-   **language-core:** removed `__hint` trick from codegen
-   **language-core:** rewrite a part of confusing codegen code
- **language-core:** reduce virtual code generated by component tags
([#&#8203;4714](https://redirect.github.com/vuejs/language-tools/issues/4714))
- **language-core:** do not wrap template virtual code with function
([#&#8203;4731](https://redirect.github.com/vuejs/language-tools/issues/4731))
- **language-core**: write real files to FS for shared global types
([#&#8203;4736](https://redirect.github.com/vuejs/language-tools/issues/4736))
- **component-meta:** remove deprecated
`createComponentMetaCheckerByJsonConfig`, `createComponentMetaChecker`
api

##### Other Changes

-   Upgraded Volar from `v2.4.0-alpha.18` to `v2.4.1`:
- Ensure unopened files are synced to project
([#&#8203;4711](https://redirect.github.com/vuejs/language-tools/issues/4711))
([#&#8203;4632](https://redirect.github.com/vuejs/language-tools/issues/4632))
- Thanks to
[@&#8203;davidmatter](https://redirect.github.com/davidmatter)!
- **ci:** integrated
[pkg.pr.new](https://redirect.github.com/stackblitz-labs/pkg.pr.new)
- **tsc:** test all typecheck cases in one tsconfig
([#&#8203;4723](https://redirect.github.com/vuejs/language-tools/issues/4723))
- **tsc:** add test for TS-next
([#&#8203;4724](https://redirect.github.com/vuejs/language-tools/issues/4724))
- **tsc:** add tests for for
[#&#8203;3779](https://redirect.github.com/vuejs/language-tools/issues/3779),
[#&#8203;3820](https://redirect.github.com/vuejs/language-tools/issues/3820)
([#&#8203;3838](https://redirect.github.com/vuejs/language-tools/issues/3838))
- Thanks to [@&#8203;so1ve](https://redirect.github.com/so1ve)!
- **vscode:** add grammar test
([#&#8203;3861](https://redirect.github.com/vuejs/language-tools/issues/3861))
- Thanks to [@&#8203;so1ve](https://redirect.github.com/so1ve)!
- **language-service:** migrate tests to `@volar/test-utils`
([#&#8203;4719](https://redirect.github.com/vuejs/language-tools/issues/4719))
- **language-core:** add scoped classes renaming case
([#&#8203;4727](https://redirect.github.com/vuejs/language-tools/issues/4727))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

###
[`v2.0.29`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2028-supofficialsup-2029-supinsiderssup-2024-07-22)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.28...v2.0.29)

##### Features

- **vscode:** focus mode <sup>Insiders</sup>
([https://github.com/volarjs/insiders/pull/24](https://redirect.github.com/volarjs/insiders/pull/24))
-   **language-core:** Plugin API 2.1
    -   Added plugin hooks: `getLanguageId`, `isValidFile`, `parseSFC2`
- Improve backward compatibility
([#&#8203;4585](https://redirect.github.com/vuejs/language-tools/issues/4585))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** support default prop when using \__typeProps
([#&#8203;4602](https://redirect.github.com/vuejs/language-tools/issues/4602))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** improve nested plugins
([#&#8203;4581](https://redirect.github.com/vuejs/language-tools/issues/4581))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-service:** remove `v-bind` code action
([#&#8203;4601](https://redirect.github.com/vuejs/language-tools/issues/4601))
- **vscode:** add empty pattern to codeblock attributes scope
([#&#8203;4590](https://redirect.github.com/vuejs/language-tools/issues/4590))
- Thanks [@&#8203;KermanX](https://redirect.github.com/KermanX)

##### Fixes

- **tsc:** errors should be thrown instead of being console.log printed
- **language-server:** observe named pipes changes when server startup
([#&#8203;4292](https://redirect.github.com/vuejs/language-tools/issues/4292))
- **language-core:** infer define model type from options type
([#&#8203;4545](https://redirect.github.com/vuejs/language-tools/issues/4545))
- Thanks [@&#8203;davidmatter](https://redirect.github.com/davidmatter)
- **language-core:** type-checking not working with hyphen in slot name
with JS
([#&#8203;4478](https://redirect.github.com/vuejs/language-tools/issues/4478))
- Thanks [@&#8203;KermanX](https://redirect.github.com/KermanX)
- **language-core:** add type check for v-model without argument
([#&#8203;4598](https://redirect.github.com/vuejs/language-tools/issues/4598))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-service:** filter special tags
([#&#8203;4596](https://redirect.github.com/vuejs/language-tools/issues/4596))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)
- **typescript-plugin:** improve named pipes reliability
([#&#8203;4603](https://redirect.github.com/vuejs/language-tools/issues/4603))
- **language-core:** property access is incorrectly identified as
compound expression
([#&#8203;4600](https://redirect.github.com/vuejs/language-tools/issues/4600))
- **language-core:** fix compatibility of generic component virtual code
with TS 5.5
([#&#8203;4577](https://redirect.github.com/vuejs/language-tools/issues/4577))
- **tsc:** TS4082 not reported for functional component
([#&#8203;4569](https://redirect.github.com/vuejs/language-tools/issues/4569))

##### Other Changes

-   Upgraded Volar from `v2.4.0-alpha.15` to `v2.4.0-alpha.18`:
- Fix VS Code IntelliSense will be lost in new created files
([#&#8203;4424](https://redirect.github.com/vuejs/language-tools/issues/4424))
- Add workspace symbols support in Hybrid Mode
([#&#8203;4595](https://redirect.github.com/vuejs/language-tools/issues/4595))
- Add workspace `addMissingImports` action support in Hybrid Mode
([#&#8203;4586](https://redirect.github.com/vuejs/language-tools/issues/4586))
- Fix yarn 4 compatibility
([#&#8203;4587](https://redirect.github.com/vuejs/language-tools/issues/4587))
- Add vue vine to hybrid mode compatible list
([#&#8203;4543](https://redirect.github.com/vuejs/language-tools/issues/4543))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)
- Add global components prop validation test
([#&#8203;4542](https://redirect.github.com/vuejs/language-tools/issues/4542))
- Thanks [@&#8203;davidmatter](https://redirect.github.com/davidmatter)

###
[`v2.0.28`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2028-supofficialsup-2029-supinsiderssup-2024-07-22)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.26...v2.0.28)

##### Features

-   **vscode:** focus mode <sup>Insiders</sup>
-   **language-core:** Plugin API 2.1
    -   Added plugin hooks: `getLanguageId`, `isValidFile`, `parseSFC2`
- Improve backward compatibility
([#&#8203;4585](https://redirect.github.com/vuejs/language-tools/issues/4585))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** support default prop when using \__typeProps
([#&#8203;4602](https://redirect.github.com/vuejs/language-tools/issues/4602))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** improve nested plugins
([#&#8203;4581](https://redirect.github.com/vuejs/language-tools/issues/4581))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-service:** remove `v-bind` code action
([#&#8203;4601](https://redirect.github.com/vuejs/language-tools/issues/4601))
- **vscode:** add empty pattern to codeblock attributes scope
([#&#8203;4590](https://redirect.github.com/vuejs/language-tools/issues/4590))
- Thanks [@&#8203;KermanX](https://redirect.github.com/KermanX)

##### Fixes

- **tsc:** errors should be thrown instead of being console.log printed
- **language-server:** observe named pipes changes when server startup
([#&#8203;4292](https://redirect.github.com/vuejs/language-tools/issues/4292))
- **language-core:** infer define model type from options type
([#&#8203;4545](https://redirect.github.com/vuejs/language-tools/issues/4545))
- Thanks [@&#8203;davidmatter](https://redirect.github.com/davidmatter)
- **language-core:** type-checking not working with hyphen in slot name
with JS
([#&#8203;4478](https://redirect.github.com/vuejs/language-tools/issues/4478))
- Thanks [@&#8203;KermanX](https://redirect.github.com/KermanX)
- **language-core:** add type check for v-model without argument
([#&#8203;4598](https://redirect.github.com/vuejs/language-tools/issues/4598))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-service:** filter special tags
([#&#8203;4596](https://redirect.github.com/vuejs/language-tools/issues/4596))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)
- **typescript-plugin:** improve named pipes reliability
([#&#8203;4603](https://redirect.github.com/vuejs/language-tools/issues/4603))
- **language-core** property access is incorrectly identified as
compound expression
([#&#8203;4600](https://redirect.github.com/vuejs/language-tools/issues/4600))
- **language-core** fix compatibility of generic component virtual code
with TS 5.5
([#&#8203;4577](https://redirect.github.com/vuejs/language-tools/issues/4577))
- **tsc** TS4082 not reported for functional component
([#&#8203;4569](https://redirect.github.com/vuejs/language-tools/issues/4569))

##### Other Changes

-   Upgraded Volar from `v2.4.0-alpha.15` to `v2.4.0-alpha.18`:
- Fix VS Code IntelliSense will be lost in new created files
([#&#8203;4424](https://redirect.github.com/vuejs/language-tools/issues/4424))
- Add workspace symbols support in Hybrid Mode
([#&#8203;4595](https://redirect.github.com/vuejs/language-tools/issues/4595))
- Add workspace `addMissingImports` action support in Hybrid Mode
([#&#8203;4586](https://redirect.github.com/vuejs/language-tools/issues/4586))
- Fix yarn 4 compatibility
([#&#8203;4587](https://redirect.github.com/vuejs/language-tools/issues/4587))
- Add vue vine to hybrid mode compatible list
([#&#8203;4543](https://redirect.github.com/vuejs/language-tools/issues/4543))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)
- Add global components prop validation test
([#&#8203;4542](https://redirect.github.com/vuejs/language-tools/issues/4542))
- Thanks [@&#8203;davidmatter](https://redirect.github.com/davidmatter)

###
[`v2.0.26`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2026-supofficialsup-2027-supinsiderssup-2024-07-04)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.24...v2.0.26)

##### Features

- **language-service:** Support auto-complete for more preprocessing
languages.
- **language-core:** Improve type compatibility with Vue 3.5.
([#&#8203;4474](https://redirect.github.com/vuejs/language-tools/issues/4474))
- Thanks, [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj).

##### Bug Fixes

- **vscode:** Fix insider version display condition. <sup>Insiders</sup>
- **language-service:** Fix `vue-twoslash-queries` not working in LSP
mode.
- **language-service:** Add null handling for script tag completion
items.
([#&#8203;4520](https://redirect.github.com/vuejs/language-tools/issues/4520))
- **language-core:** Fix `any` in templates if the first checked file
was not root.
([#&#8203;4526](https://redirect.github.com/vuejs/language-tools/issues/4526))
- Thanks,
[@&#8203;daniluk4000](https://redirect.github.com/daniluk4000).

##### Other Changes

-   Upgraded Volar from `v2.4.0-alpha.2` to `v2.4.0-alpha.14`:
- Fixed an issue where, when Hybrid Mode is disabled, TS support for Vue
files not included in tsconfig may be missing.
- Improved the consistency of `vue-tsc` and `tsc` behavior.
([#&#8203;3526](https://redirect.github.com/vuejs/language-tools/issues/3526))
    -   Fixed the `--clean` flag support for `vue-tsc`.
-   Updated the high-level overview mermaid diagram.
- Added 'expected' and 'actually happening' sections to the bug report
template.
([#&#8203;4515](https://redirect.github.com/vuejs/language-tools/issues/4515))
- Thanks,
[@&#8203;davidmatter](https://redirect.github.com/davidmatter).

###
[`v2.0.24`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2024-supofficialsup-2025-supinsiderssup-2024-06-30)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.22...v2.0.24)

##### Features

- **vscode:** pop message box if new insiders version available
<sup>insiders</sup>
- **vscode:** if insiders versions information failed to fetch from
GitHub, try to fetch from CDN <sup>insiders</sup>
- **language-service:** better sfc-level tag name completion
([#&#8203;4506](https://redirect.github.com/vuejs/language-tools/issues/4506))
- Thanks [@&#8203;KermanX](https://redirect.github.com/KermanX)

##### Bug Fixes

- **tsc:** update required volar version
([#&#8203;4498](https://redirect.github.com/vuejs/language-tools/issues/4498))
- Thanks [@&#8203;davidmatter](https://redirect.github.com/davidmatter)
- **tsc:** bump peer typescript version
([#&#8203;4513](https://redirect.github.com/vuejs/language-tools/issues/4513))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)

##### Refactors

- **language-server:** reorganize the code structure
([#&#8203;4507](https://redirect.github.com/vuejs/language-tools/issues/4507))

##### Other Changes

-   Upgrade Volar from `v2.3.1` to `v2.4.0-alpha.2`.
- Hybrid Mode compatibility improvements with other TS plugins
([https://github.com/volarjs/volar.js/issues/216](https://redirect.github.com/volarjs/volar.js/issues/216))
- **docs:** add nvim-cmp integration
([#&#8203;4463](https://redirect.github.com/vuejs/language-tools/issues/4463))
- Thanks
[@&#8203;RayGuo-ergou](https://redirect.github.com/RayGuo-ergou)
-   **docs:** update mermaid
- The following extensions have been added to Hybrid Mode’s
compatibility whitelist
([#&#8203;4206](https://redirect.github.com/vuejs/language-tools/issues/4206)):
    -   `p42ai.refactor`
    -   `nrwl.angular-console`
    -   `styled-components.vscode-styled-components`
    -   `Divlo.vscode-styled-jsx-languageserver`

###
[`v2.0.22`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2022-2024-06-22)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.21...v2.0.22)

##### Bug Fixes

- **vscode:** directive syntax highlighting
([#&#8203;4482](https://redirect.github.com/vuejs/language-tools/issues/4482))
- Thanks [@&#8203;KermanX](https://redirect.github.com/KermanX)
- **language-core:** move declare defineProp out of function scope
([#&#8203;4454](https://redirect.github.com/vuejs/language-tools/issues/4454))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** compatible with TS 5.5
([#&#8203;4492](https://redirect.github.com/vuejs/language-tools/issues/4492))

##### Other Changes

-   Upgrade Volar from `v2.3.0-alpha.14` to `v2.3.1`.
- Error tolerant to `contentChanges` length
([#&#8203;4457](https://redirect.github.com/vuejs/language-tools/issues/4457))
- Add feature request template
([#&#8203;4490](https://redirect.github.com/vuejs/language-tools/issues/4490))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)
- **docs:** fix wrong links in CHANGELOG.md
([#&#8203;4475](https://redirect.github.com/vuejs/language-tools/issues/4475))
- Thanks [@&#8203;KermanX](https://redirect.github.com/KermanX)

###
[`v2.0.21`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2021-2024-06-08)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.20...v2.0.21)

##### Bug Fixes

- fix(typescript-plugin): TS plugin cause type checking broken in .ts
files
([#&#8203;4453](https://redirect.github.com/vuejs/language-tools/issues/4453))

###
[`v2.0.20`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2020-2024-06-08)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.19...v2.0.20)

##### Features

-   feat(language-service): add localization support for zh-hk/zh-tw
- feat(vscode): enable syntax highlighting of cue code blocks in MDX
([#&#8203;4425](https://redirect.github.com/vuejs/language-tools/issues/4425))
- Thanks
[@&#8203;remcohaszing](https://redirect.github.com/remcohaszing)

##### Bug Fixes

- fix(vscode): fix "as"/"instanceof" expressions syntax highlight
([#&#8203;4412](https://redirect.github.com/vuejs/language-tools/issues/4412))
- fix(language-core): `ForIteratorExpression`'s `returns` property may
be undefined
([#&#8203;4418](https://redirect.github.com/vuejs/language-tools/issues/4418))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)
- fix(language-core): use defineEmits calls instead of type infer
([#&#8203;4430](https://redirect.github.com/vuejs/language-tools/issues/4430))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- fix(tsc): log catched errors to console
([#&#8203;4451](https://redirect.github.com/vuejs/language-tools/issues/4451))
- Thanks [@&#8203;mik3ybark3r](https://redirect.github.com/mik3ybark3r)
- fix(typescript-plugin): TS not working in template when tsconfig
missing
([#&#8203;4452](https://redirect.github.com/vuejs/language-tools/issues/4452))
- fix(language-core): use type infer instead of await import
([#&#8203;4436](https://redirect.github.com/vuejs/language-tools/issues/4436))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- feat(language-core): ignore type error for new functional component
([#&#8203;4445](https://redirect.github.com/vuejs/language-tools/issues/4445))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- fix(language-core): ignore type error for possible component name
([#&#8203;4446](https://redirect.github.com/vuejs/language-tools/issues/4446))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
-   fix(language-service): filter internal props in template completion
-   fix(language-service): sort component props in template completion
- fix(language-core): duplicate completion appears at the beginning of
script setup block

##### Other Changes

-   Upgrade Volar from `v2.2.4` to `v2.3.0-alpha.14`.
    -   LSP server performance improved
- Language server now responds with the exact server capabilities for
initialization requests
- Auto insertion requests can now exit early in the language client
- The following extensions have been added to Hybrid Mode’s
compatibility whitelist:
- `kimuson.ts-type-expand` - Thanks
[@&#8203;zcf0508](https://redirect.github.com/zcf0508)

###
[`v2.0.19`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2019-2024-05-16)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.18...v2.0.19)

##### Bug Fixes

- **language-core:** property 'xyz' does not exist on type 'abc' when
using v-for
([#&#8203;4386](https://redirect.github.com/vuejs/language-tools/issues/4386))
- **language-core:** avoid report error when events do not accept
parameters
([#&#8203;4387](https://redirect.github.com/vuejs/language-tools/issues/4387))
- **language-core:** inline dynamic event handlers should not expect
commas
([#&#8203;4387](https://redirect.github.com/vuejs/language-tools/issues/4387))

###
[`v2.0.18`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2018-2024-05-15)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.17...v2.0.18)

##### Features

- feat(language-core): report unknown events when strictTemplates is
enabled
([#&#8203;3718](https://redirect.github.com/vuejs/language-tools/issues/3718))
- feat(language-core): add `compileSFCScript` plugin hook
([#&#8203;3200](https://redirect.github.com/vuejs/language-tools/issues/3200))
-   feat(vscode): add coffeescript syntax highlight support

##### Bug Fixes

- fix(language-core): fix event handler type for hyphen-case event names
- fix(language-core): allow binding multiple events with the same name
([#&#8203;4369](https://redirect.github.com/vuejs/language-tools/issues/4369))
- fix(language-core): variable used in `key` appears as unused in v-for
template tag
([#&#8203;329](https://redirect.github.com/vuejs/language-tools/issues/329))
([#&#8203;3421](https://redirect.github.com/vuejs/language-tools/issues/3421))
- fix(language-core): generics with slots don't work with Vue 2.7
([#&#8203;3241](https://redirect.github.com/vuejs/language-tools/issues/3241))
- fix(language-core): template language of .md files should be markdown
([#&#8203;4299](https://redirect.github.com/vuejs/language-tools/issues/4299))
- fix(language-core): no template class links when
`experimentalResolveStyleCssClasses` is set to `always`
([#&#8203;4379](https://redirect.github.com/vuejs/language-tools/issues/4379))

##### Other Changes

-   Upgrade Volar from `v2.2.2` to `v2.2.4`.
    -   Fixed a few URI conversion issues
- fix(typescript): empty items list should be valid completion result
([#&#8203;4368](https://redirect.github.com/vuejs/language-tools/issues/4368))
    -   fix(typescript): path completion not working for meta files
-   Upgrade Volar services from `v0.0.44` to `v0.0.45`.
    -   fix(typescript-twoslash-queries): inlay hints not working
    -   fix(css, html, json, yaml): failed to resolve relative path
- feat(emmet): port VSCode emmet extension client logic
([https://github.com/volarjs/services/issues/95](https://redirect.github.com/volarjs/services/issues/95))
- The following extensions have been added to Hybrid Mode’s
compatibility whitelist:
    -   `miaonster.vscode-tsx-arrow-definition`
    -   `runem.lit-plugin`

###
[`v2.0.17`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2017-2024510)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.16...v2.0.17)

##### Features

- **language-core:** add JSDod support for component
([#&#8203;2377](https://redirect.github.com/vuejs/language-tools/issues/2377))
- **language-core:** add JSDoc support for script setup binding
variables
([#&#8203;3409](https://redirect.github.com/vuejs/language-tools/issues/3409))
- **language-core:** add class component support
([#&#8203;4354](https://redirect.github.com/vuejs/language-tools/issues/4354))
- **language-service:** re-support scoped class links in template
([#&#8203;4357](https://redirect.github.com/vuejs/language-tools/issues/4357))
- **typescript-plugin:** create script setup block when auto import if
needed
- **typescript-plugin:** add JSDoc support for events in template
([#&#8203;4365](https://redirect.github.com/vuejs/language-tools/issues/4365))
-   **component-meta:** add JSDoc tags support for events
- **language-core:** support defineOptions
([#&#8203;4362](https://redirect.github.com/vuejs/language-tools/issues/4362))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)

##### Bug Fixes

- **language-core:** hover not working for intrinsic element event name
- **language-core:** showing false *declared but not used* errors for
functions used in `v-on="{}"`
([#&#8203;4333](https://redirect.github.com/vuejs/language-tools/issues/4333))
-   **language-core:** fix nameless event expression formatting
- **language-core:** types imported in the `<script setup>` should not
be used as a variable in template
([#&#8203;4353](https://redirect.github.com/vuejs/language-tools/issues/4353))
- **language-core:** renaming classname within `scoped` not working
([#&#8203;4355](https://redirect.github.com/vuejs/language-tools/issues/4355))
- **language-core:** `<style>` completions and html custom data
completions not provided in some cases
([#&#8203;4092](https://redirect.github.com/vuejs/language-tools/issues/4092))
-   **language-core:** improve code action edits mapping fault tolerance
- **language-core:** support defineModel for generic component
([#&#8203;4345](https://redirect.github.com/vuejs/language-tools/issues/4345))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
-   **language-service:** completion cannot trigger in SFC root
-   **component-meta:** `forceUseTs` options not working

##### Other Changes

-   Upgrade Volar from `v2.2.0` to `v2.2.2`.
- fix(language-server): pass correct languageId when creating virtual
code
([https://github.com/volarjs/volar.js/issues/173](https://redirect.github.com/volarjs/volar.js/issues/173))
- fix(typescript): additional completion not working in plugin
([#&#8203;4323](https://redirect.github.com/vuejs/language-tools/issues/4323))
-   Upgrade Volar services from `v0.0.42` to `v0.0.44`.
- feat(typescript): code action edits respect editor formatting settings
([https://github.com/volarjs/services/issues/30](https://redirect.github.com/volarjs/services/issues/30))
- fix(typescript): not being able to jump to shims module definition
- fix(typescript): `allowTextChangesInNewFiles` never true for embedded
documents
- perf(typescript): check `command` resolve capability only for specific
refactors
([https://github.com/volarjs/services/issues/94](https://redirect.github.com/volarjs/services/issues/94))
- The following extensions have been added to Hybrid Mode’s
compatibility whitelist:
    -   `mxsdev.typescript-explorer`
- Deprecated `vueCompilerOptions.experimentalUseElementAccessInTemplate`
- Specify `packageManager`
([#&#8203;4358](https://redirect.github.com/vuejs/language-tools/issues/4358))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)
- **docs:** emoved possibly redundant duplicate reference
([#&#8203;4348](https://redirect.github.com/vuejs/language-tools/issues/4348))
- Thanks [@&#8203;artshade](https://redirect.github.com/artshade)
- **language-service:** temporarily remove references codeLens
([#&#8203;4364](https://redirect.github.com/vuejs/language-tools/issues/4364))
-   **vscode:** auto enabling hybrid mode allows

###
[`v2.0.16`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2016-202451)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.15...v2.0.16)

##### Bug Fixes

- **language-core:** virtual document language ID is not updated when
changing SFC style block lang
- **language-core:** correct logic for `defineSlots` destructuring
([#&#8203;4326](https://redirect.github.com/vuejs/language-tools/issues/4326))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** ObjectDirective does not work with `defineSlots`
([#&#8203;4327](https://redirect.github.com/vuejs/language-tools/issues/4327))
- **language-service:** emmet not working in postcss style block
([https://github.com/volarjs/volar.js/issues/169](https://redirect.github.com/volarjs/volar.js/issues/169))

##### Other Changes

- Upgrade to [Volar
2.2](https://redirect.github.com/volarjs/volar.js/releases/tag/v2.2.0)
- **language-core:** export `VueEmbeddedCode`
([#&#8203;4265](https://redirect.github.com/vuejs/language-tools/issues/4265))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **typescript-plugin:** expose `FileRegistry` to `project.program`
([#&#8203;3963](https://redirect.github.com/vuejs/language-tools/issues/3963))
- Thanks [@&#8203;zcf0508](https://redirect.github.com/zcf0508)
- **vscode:** remove outdated formatters section
([#&#8203;4243](https://redirect.github.com/vuejs/language-tools/issues/4243))
- Thanks [@&#8203;BBboy01](https://redirect.github.com/BBboy01)

###
[`v2.0.15`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2015-2024430)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.14...v2.0.15)

##### Features

- Redesign additional extensions, VitePress, PetiteVue support
([#&#8203;4321](https://redirect.github.com/vuejs/language-tools/issues/4321))
- Fix custom file extensions not working in Hybrid Mode
([#&#8203;4251](https://redirect.github.com/vuejs/language-tools/issues/4251))
- **vscode:** prompt when Hybrid Mode is explicitly enabled but known
incompatible extensions are installed
- **language-core:** use internal options for directly exposing user
props/emits types
([vuejs/core#10801](https://redirect.github.com/vuejs/core/pull/10801))
- **language-core:** support defineSlots destructuring
([#&#8203;4312](https://redirect.github.com/vuejs/language-tools/issues/4312))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/unraid/api).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants