renovate[bot] dc2e02de86 chore(deps): update dependency vue-tsc to v2 (#1176)
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](a95b51ac0b...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>
2025-02-21 07:30:32 -05:00
2025-02-20 19:26:21 -05:00
2025-02-20 19:29:50 -05:00
2025-02-20 19:29:50 -05:00
2025-02-12 10:39:22 -05:00
2025-02-12 10:35:11 -05:00

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Unraid Connect

Monorepo for Unraid Connect and the Unraid API.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Built With

  • Unraid
  • Node.js
  • Nuxt
  • PHP

(back to top)

Getting Started

This section will guide you through the steps necessary to get the monorepo projects running and communicating with each other.

Prerequisites

Make sure the following software is installed before proceeding.

Next, create an SSH key if you haven't already. Once you have your key pair, add your public SSH key to your Unraid server:

  1. Log in to your Unraid development server.
  2. Use the navigation menu to go to 'Users'.
  3. Click on the user you logged in with (e.g. root)
  4. Paste your SSH public key into 'SSH authorized keys' and click 'Save'.

Installation

  1. Clone and enter the repo

    # Optionally, give the cloned folder a more specific name
    gh repo clone unraid/api api-monorepo
    cd api-monorepo
    
  2. Run the monorepo setup command.

    just setup
    

    This will run installation scripts, container builds, and some git scripts to reduce noise (i.e. personal editor customizations, etc).

  3. Run the API container

    cd api
    npm run container:start
    
  4. This should bring you inside the API container. There, run the following command to start the server:

    npm run dev
    
  5. In another terminal, open the project and navigate to the web directory. Then, run the dev server:

    cd web
    npm install # just in case
    npm run dev
    

(back to top)

Usage

Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources.

For more examples, please refer to the Documentation

(back to top)

Contributing

Work Intent Process

Before starting development work on this project, you must submit a Work Intent and have it approved by a core developer. This helps prevent duplicate work and ensures changes align with the project's goals.

  1. Create a Work Intent

  2. Wait for Approval

    • A core developer will review your Work Intent
    • They may ask questions or suggest changes
    • Once approved, the unapproved label will be removed
  3. Begin Development

    • Only start coding after your Work Intent is approved
    • Follow the approach outlined in your approved Work Intent
    • Reference the Work Intent in your future PR

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Top contributors

contrib.rocks image

Contact

@UnraidOfficial - support@unraid.net.com

Project Link: https://github.com/unraid/api

(back to top)

Acknowledgments

(back to top)

Description
Unraid API / Connect / UI Monorepo
Readme 131 MiB
Languages
TypeScript 78.2%
Vue 11.9%
PHP 5.1%
Shell 1.9%
JavaScript 1.3%
Other 1.5%