vuejs/language-tools (vue-tsc)
### [`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 Insiders
- **language-core:** auto infer `$el` type ([#4805](https://redirect.github.com/vuejs/language-tools/issues/4805)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** typed directive arg and modifiers ([#4813](https://redirect.github.com/vuejs/language-tools/issues/4813)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
##### Bug Fixes
- **language-core:** avoid generic type loss due to destructured props ([#4821](https://redirect.github.com/vuejs/language-tools/issues/4821)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** handle `v-for` with `v-once` correctly ([#4830](https://redirect.github.com/vuejs/language-tools/issues/4830)) - Thanks to [@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` ([#4845](https://redirect.github.com/vuejs/language-tools/issues/4845)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** initialize scope with null prototype object ([#4855](https://redirect.github.com/vuejs/language-tools/issues/4855)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** inlay hints for `` and `` ([#4661](https://redirect.github.com/vuejs/language-tools/issues/4661)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX), [@so1ve](https://redirect.github.com/so1ve)!
- **language-core:** should error when invalid syntax at script end ([#4692](https://redirect.github.com/vuejs/language-tools/issues/4692)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** correct type inference of `defineModel` & `defineEmits` in generic ([#4823](https://redirect.github.com/vuejs/language-tools/issues/4823)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** inject generics of `useTemplateRef` into correct location ([#4829](https://redirect.github.com/vuejs/language-tools/issues/4829)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** prevent the generation of generics in JS ([#4836](https://redirect.github.com/vuejs/language-tools/issues/4836)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX), [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** generate correct reference for `v-on` on `` ([#4864](https://redirect.github.com/vuejs/language-tools/issues/4864)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** match classname before `)` ([#4887](https://redirect.github.com/vuejs/language-tools/issues/4887)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** handle internal item key with leading slash correctly ([#4894](https://redirect.github.com/vuejs/language-tools/issues/4894)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** correctly obtain the index of style modules ([#4907](https://redirect.github.com/vuejs/language-tools/issues/4907)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** refer absolute path of global types file ([#4924](https://redirect.github.com/vuejs/language-tools/issues/4924)) - Thanks to [@depressedX](https://redirect.github.com/depressedX)!
- **component-meta:** error when signatures is undefined ([#4930](https://redirect.github.com/vuejs/language-tools/issues/4930)) - Thanks to [@Hannesrasmussen](https://redirect.github.com/Hannesrasmussen)!
- **language-core:** intersect props of generic component with attrs ([#4886](https://redirect.github.com/vuejs/language-tools/issues/4886)) - Thanks to [@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 ([#4892](https://redirect.github.com/vuejs/language-tools/issues/4892)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** infer template ref's type of native elements with `v-for` correctly ([#4933](https://redirect.github.com/vuejs/language-tools/issues/4933)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** should wrap item with `Reactive` on `v-for` ([#4902](https://redirect.github.com/vuejs/language-tools/issues/4902)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
##### Performance
- **language-service:** find destructured props only with enabled setting ([#4815](https://redirect.github.com/vuejs/language-tools/issues/4815)) - Thanks to [@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 ([#4909](https://redirect.github.com/vuejs/language-tools/issues/4909)) - Thanks to [@rchl](https://redirect.github.com/rchl)!
- The syntax highlighting is not applied when destructuring props ([#4811](https://redirect.github.com/vuejs/language-tools/issues/4811))
- chore: fix nvim config snippet in README ([#4881](https://redirect.github.com/vuejs/language-tools/issues/4881)) - Thanks to [@LiamEderzeel](https://redirect.github.com/LiamEderzeel)!
- chore: remove side effects ([#4871](https://redirect.github.com/vuejs/language-tools/issues/4871)) - Thanks to [@vikingair](https://redirect.github.com/vikingair)!
- chore: remove `importsNotUsedAsValues` ([#4897](https://redirect.github.com/vuejs/language-tools/issues/4897)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- chore(vscode): switch to `"module": "CommonJS"` ([#4944](https://redirect.github.com/vuejs/language-tools/issues/4944)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- test: fix incorrect default value ([#4934](https://redirect.github.com/vuejs/language-tools/issues/4934)) - Thanks to [@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 ([#4774](https://redirect.github.com/vuejs/language-tools/issues/4774))
- **language-service:** JSDoc display support when typing props on component template ([#4796](https://redirect.github.com/vuejs/language-tools/issues/4796)) - Thanks to [@joy-yu](https://redirect.github.com/joy-yu)!
- **language-core:** typed directives in template ([#4807](https://redirect.github.com/vuejs/language-tools/issues/4807)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
##### Bug Fixes
- **language-core:** wrap template refs with `unref` in interpolation ([#4777](https://redirect.github.com/vuejs/language-tools/issues/4777)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** ensure to pass tsc on inline global types ([#4782](https://redirect.github.com/vuejs/language-tools/issues/4782)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** infer native template ref as build-in element interface ([#4786](https://redirect.github.com/vuejs/language-tools/issues/4786)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** generate `__VLS_StyleModules` after template ([#4790](https://redirect.github.com/vuejs/language-tools/issues/4790)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** make `expose` of non-generic template ref required ([#4795](https://redirect.github.com/vuejs/language-tools/issues/4795)) - Thanks to [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** avoid using `__typeProps` with runtime props ([#4800](https://redirect.github.com/vuejs/language-tools/issues/4800)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** ignore unknown attrs error when strictTemplates is not enabled ([#4785](https://redirect.github.com/vuejs/language-tools/issues/4785))
- **language-core:** prevent append globalTypes to virtual file ([#4806](https://redirect.github.com/vuejs/language-tools/issues/4806)) - Thanks to [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** prevent type error when use defineSlots and non-template ([#4809](https://redirect.github.com/vuejs/language-tools/issues/4809)) - Thanks to [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **typescript-plugin:** disconnect socket on error ([#4672](https://redirect.github.com/vuejs/language-tools/issues/4672))
##### Performance
- **language-core:** don't emit event lnlayhint when content is none ([#4776](https://redirect.github.com/vuejs/language-tools/issues/4776)) - Thanks to [@Gehbt](https://redirect.github.com/Gehbt)!
##### Other Changes
- **language-core:** split `__VLS_templateResult` ([#4781](https://redirect.github.com/vuejs/language-tools/issues/4781)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** wrap template virtual code into a function ([#4784](https://redirect.github.com/vuejs/language-tools/issues/4784))
- **language-core:** move `templateRef` into `composibles` ([#4791](https://redirect.github.com/vuejs/language-tools/issues/4791)) - Thanks to [@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()` ([#4794](https://redirect.github.com/vuejs/language-tools/issues/4794)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **tsc:** update to Vue 3.5 ([#4725](https://redirect.github.com/vuejs/language-tools/issues/4725))
- **tsc:** unknown props on non-strict generic component ([#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` ([#4752](https://redirect.github.com/vuejs/language-tools/issues/4752)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** navigation support for template-ref ([#4726](https://redirect.github.com/vuejs/language-tools/issues/4726)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
##### Bug Fixes
- **language-core, typescript-plugin, language-server:** apply snake case on globalTypes filename ([#4749](https://redirect.github.com/vuejs/language-tools/issues/4749)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** hoist `$refs` type ([#4763](https://redirect.github.com/vuejs/language-tools/issues/4763))
- **language-core:** disable lib check on global types file ([#4767](https://redirect.github.com/vuejs/language-tools/issues/4767)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** prevent circular reference of templateRef ([#4768](https://redirect.github.com/vuejs/language-tools/issues/4768)) - Thanks to [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** using interface merging for `GlobalComponents`
- **language-core:** `fallthroughAttributes` causes global components to be self-referential ([#4761](https://redirect.github.com/vuejs/language-tools/issues/4761))
- **language-core:** auto-completion for the last line of template block ([#4771](https://redirect.github.com/vuejs/language-tools/issues/4771)) - Thanks to [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** update ast correctly on repeated `v-for` modifications ([#4772](https://redirect.github.com/vuejs/language-tools/issues/4772)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-server:** leaking named pipes ([#4672](https://redirect.github.com/vuejs/language-tools/issues/4672))
- **typescript-plugin:** compatible with Yarn PnP ([#4751](https://redirect.github.com/vuejs/language-tools/issues/4751))
- **vscode:** whitelist `ms-dynamics-smb.al` extension for Vue Hybrid Mode. ([#4765](https://redirect.github.com/vuejs/language-tools/issues/4765)) - Thanks to [@kyleweishaupt](https://redirect.github.com/kyleweishaupt)!
##### Other Changes
- Add optional "dependencies" textarea to issue template ([#4758](https://redirect.github.com/vuejs/language-tools/issues/4758)) - Thanks to [@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 ([#4740](https://redirect.github.com/vuejs/language-tools/issues/4740)) ([#4737](https://redirect.github.com/vuejs/language-tools/issues/4737)) ([#4738](https://redirect.github.com/vuejs/language-tools/issues/4738)) ([#4739](https://redirect.github.com/vuejs/language-tools/issues/4739)) - Thanks to [@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 ([#4634](https://redirect.github.com/vuejs/language-tools/issues/4634)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** typed fallthrough attributes ([#4103](https://redirect.github.com/vuejs/language-tools/issues/4103)) - Thanks to [@A5rocks](https://redirect.github.com/A5rocks), [@so1ve](https://redirect.github.com/so1ve)!
- **language-core:** document links for classname within `:class` ([#4642](https://redirect.github.com/vuejs/language-tools/issues/4642)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** auto infer type for $refs & useTemplateRef ([#4644](https://redirect.github.com/vuejs/language-tools/issues/4644)) - Thanks to [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** type support for CSS Modules API ([#4674](https://redirect.github.com/vuejs/language-tools/issues/4674)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** better completion for directives ([#4640](https://redirect.github.com/vuejs/language-tools/issues/4640)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** better sorting & filtering of completion ([#4671](https://redirect.github.com/vuejs/language-tools/issues/4671)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** add style scoped and module completion ([#4705](https://redirect.github.com/vuejs/language-tools/issues/4705)) - Thanks to [@runyasak](https://redirect.github.com/runyasak)!
##### Bug Fixes
- **vscode:** type of `vue.server.hybridMode` config ([#4703](https://redirect.github.com/vuejs/language-tools/issues/4703)) - Thanks to [@KermanX](https://redirect.github.com/KermanX)!
- **language-core:** dependency on vulnerable version of `vue-template-compiler` ([#4613](https://redirect.github.com/vuejs/language-tools/issues/4613)) - Thanks to [@yyx990803](https://redirect.github.com/yyx990803)!
- **language-core:** support parse method to access ctx var in object ([#4609](https://redirect.github.com/vuejs/language-tools/issues/4609)) - Thanks to [@linghaoSu](https://redirect.github.com/linghaoSu)!
- **language-core:** escape \ and ' in className avoid type error ([#4619](https://redirect.github.com/vuejs/language-tools/issues/4619)) - Thanks to [@linghaoSu](https://redirect.github.com/linghaoSu)!
- **language-core:** semantic highlight of the end tag of namespaced elements ([#4623](https://redirect.github.com/vuejs/language-tools/issues/4623)) - Thanks to [@KermanX](https://redirect.github.com/KermanX)!
- **language-core:** nullable modelvalues ([#4648](https://redirect.github.com/vuejs/language-tools/issues/4648)) - Thanks to [@davidmatter](https://redirect.github.com/davidmatter)!
- **language-core:** should try casting dynamic slot name into constant ([#4669](https://redirect.github.com/vuejs/language-tools/issues/4669)) - Thanks to [@KermanX](https://redirect.github.com/KermanX)!
- **language-core:** local name support for prop using runtime api ([#4650](https://redirect.github.com/vuejs/language-tools/issues/4650)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** optimize matching of scoped class and `v-bind()` ([#4679](https://redirect.github.com/vuejs/language-tools/issues/4679)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** should preserve generic info in directive ([#4686](https://redirect.github.com/vuejs/language-tools/issues/4686)) - Thanks to [@KermanX](https://redirect.github.com/KermanX)!
- **language-core:** generate `ref` as identifier instead of interpolation ([#4688](https://redirect.github.com/vuejs/language-tools/issues/4688)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** correct type narrowing from script to template ([#4689](https://redirect.github.com/vuejs/language-tools/issues/4689)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** should camelize prop name in `experimentalModelPropName` ([#4691](https://redirect.github.com/vuejs/language-tools/issues/4691)) - Thanks to [@KermanX](https://redirect.github.com/KermanX)!
- **language-core:** drop duplicate hints on incomplete tag ([#4696](https://redirect.github.com/vuejs/language-tools/issues/4696)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** correct inlay hints for v-bind with modifier ([#4721](https://redirect.github.com/vuejs/language-tools/issues/4721)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** transform range of `file-md` correctly ([#4735](https://redirect.github.com/vuejs/language-tools/issues/4735)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-plugin-pug:** should cache proxyed object ([#4626](https://redirect.github.com/vuejs/language-tools/issues/4626)) - Thanks to [@KermanX](https://redirect.github.com/KermanX)!
- **language-plugin-pug:** compute offset correctly of pug class ([#4652](https://redirect.github.com/vuejs/language-tools/issues/4652)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** completion documentations for binding attributes ([#4667](https://redirect.github.com/vuejs/language-tools/issues/4667)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** avoid converting internal id of special tags ([#4643](https://redirect.github.com/vuejs/language-tools/issues/4643)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** reinstate the completion for modifiers ([#4639](https://redirect.github.com/vuejs/language-tools/issues/4639)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** consistent data from provider for sfc completion ([#4645](https://redirect.github.com/vuejs/language-tools/issues/4645)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)!
- **typescript-plugin:** unknown request type warning ([#4715](https://redirect.github.com/vuejs/language-tools/issues/4715)) - Thanks to [@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 ([#4714](https://redirect.github.com/vuejs/language-tools/issues/4714))
- **language-core:** do not wrap template virtual code with function ([#4731](https://redirect.github.com/vuejs/language-tools/issues/4731))
- **language-core**: write real files to FS for shared global types ([#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 ([#4711](https://redirect.github.com/vuejs/language-tools/issues/4711)) ([#4632](https://redirect.github.com/vuejs/language-tools/issues/4632)) - Thanks to [@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 ([#4723](https://redirect.github.com/vuejs/language-tools/issues/4723))
- **tsc:** add test for TS-next ([#4724](https://redirect.github.com/vuejs/language-tools/issues/4724))
- **tsc:** add tests for for [#3779](https://redirect.github.com/vuejs/language-tools/issues/3779), [#3820](https://redirect.github.com/vuejs/language-tools/issues/3820) ([#3838](https://redirect.github.com/vuejs/language-tools/issues/3838)) - Thanks to [@so1ve](https://redirect.github.com/so1ve)!
- **vscode:** add grammar test ([#3861](https://redirect.github.com/vuejs/language-tools/issues/3861)) - Thanks to [@so1ve](https://redirect.github.com/so1ve)!
- **language-service:** migrate tests to `@volar/test-utils` ([#4719](https://redirect.github.com/vuejs/language-tools/issues/4719))
- **language-core:** add scoped classes renaming case ([#4727](https://redirect.github.com/vuejs/language-tools/issues/4727)) - Thanks to [@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 Insiders ([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 ([#4585](https://redirect.github.com/vuejs/language-tools/issues/4585)) - Thanks [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** support default prop when using \__typeProps ([#4602](https://redirect.github.com/vuejs/language-tools/issues/4602)) - Thanks [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** improve nested plugins ([#4581](https://redirect.github.com/vuejs/language-tools/issues/4581)) - Thanks [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-service:** remove `v-bind` code action ([#4601](https://redirect.github.com/vuejs/language-tools/issues/4601))
- **vscode:** add empty pattern to codeblock attributes scope ([#4590](https://redirect.github.com/vuejs/language-tools/issues/4590)) - Thanks [@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 ([#4292](https://redirect.github.com/vuejs/language-tools/issues/4292))
- **language-core:** infer define model type from options type ([#4545](https://redirect.github.com/vuejs/language-tools/issues/4545)) - Thanks [@davidmatter](https://redirect.github.com/davidmatter)
- **language-core:** type-checking not working with hyphen in slot name with JS ([#4478](https://redirect.github.com/vuejs/language-tools/issues/4478)) - Thanks [@KermanX](https://redirect.github.com/KermanX)
- **language-core:** add type check for v-model without argument ([#4598](https://redirect.github.com/vuejs/language-tools/issues/4598)) - Thanks [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-service:** filter special tags ([#4596](https://redirect.github.com/vuejs/language-tools/issues/4596)) - Thanks [@so1ve](https://redirect.github.com/so1ve)
- **typescript-plugin:** improve named pipes reliability ([#4603](https://redirect.github.com/vuejs/language-tools/issues/4603))
- **language-core:** property access is incorrectly identified as compound expression ([#4600](https://redirect.github.com/vuejs/language-tools/issues/4600))
- **language-core:** fix compatibility of generic component virtual code with TS 5.5 ([#4577](https://redirect.github.com/vuejs/language-tools/issues/4577))
- **tsc:** TS4082 not reported for functional component ([#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 ([#4424](https://redirect.github.com/vuejs/language-tools/issues/4424))
- Add workspace symbols support in Hybrid Mode ([#4595](https://redirect.github.com/vuejs/language-tools/issues/4595))
- Add workspace `addMissingImports` action support in Hybrid Mode ([#4586](https://redirect.github.com/vuejs/language-tools/issues/4586))
- Fix yarn 4 compatibility ([#4587](https://redirect.github.com/vuejs/language-tools/issues/4587))
- Add vue vine to hybrid mode compatible list ([#4543](https://redirect.github.com/vuejs/language-tools/issues/4543)) - Thanks [@so1ve](https://redirect.github.com/so1ve)
- Add global components prop validation test ([#4542](https://redirect.github.com/vuejs/language-tools/issues/4542)) - Thanks [@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 Insiders
- **language-core:** Plugin API 2.1
- Added plugin hooks: `getLanguageId`, `isValidFile`, `parseSFC2`
- Improve backward compatibility ([#4585](https://redirect.github.com/vuejs/language-tools/issues/4585)) - Thanks [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** support default prop when using \__typeProps ([#4602](https://redirect.github.com/vuejs/language-tools/issues/4602)) - Thanks [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** improve nested plugins ([#4581](https://redirect.github.com/vuejs/language-tools/issues/4581)) - Thanks [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-service:** remove `v-bind` code action ([#4601](https://redirect.github.com/vuejs/language-tools/issues/4601))
- **vscode:** add empty pattern to codeblock attributes scope ([#4590](https://redirect.github.com/vuejs/language-tools/issues/4590)) - Thanks [@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 ([#4292](https://redirect.github.com/vuejs/language-tools/issues/4292))
- **language-core:** infer define model type from options type ([#4545](https://redirect.github.com/vuejs/language-tools/issues/4545)) - Thanks [@davidmatter](https://redirect.github.com/davidmatter)
- **language-core:** type-checking not working with hyphen in slot name with JS ([#4478](https://redirect.github.com/vuejs/language-tools/issues/4478)) - Thanks [@KermanX](https://redirect.github.com/KermanX)
- **language-core:** add type check for v-model without argument ([#4598](https://redirect.github.com/vuejs/language-tools/issues/4598)) - Thanks [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-service:** filter special tags ([#4596](https://redirect.github.com/vuejs/language-tools/issues/4596)) - Thanks [@so1ve](https://redirect.github.com/so1ve)
- **typescript-plugin:** improve named pipes reliability ([#4603](https://redirect.github.com/vuejs/language-tools/issues/4603))
- **language-core** property access is incorrectly identified as compound expression ([#4600](https://redirect.github.com/vuejs/language-tools/issues/4600))
- **language-core** fix compatibility of generic component virtual code with TS 5.5 ([#4577](https://redirect.github.com/vuejs/language-tools/issues/4577))
- **tsc** TS4082 not reported for functional component ([#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 ([#4424](https://redirect.github.com/vuejs/language-tools/issues/4424))
- Add workspace symbols support in Hybrid Mode ([#4595](https://redirect.github.com/vuejs/language-tools/issues/4595))
- Add workspace `addMissingImports` action support in Hybrid Mode ([#4586](https://redirect.github.com/vuejs/language-tools/issues/4586))
- Fix yarn 4 compatibility ([#4587](https://redirect.github.com/vuejs/language-tools/issues/4587))
- Add vue vine to hybrid mode compatible list ([#4543](https://redirect.github.com/vuejs/language-tools/issues/4543)) - Thanks [@so1ve](https://redirect.github.com/so1ve)
- Add global components prop validation test ([#4542](https://redirect.github.com/vuejs/language-tools/issues/4542)) - Thanks [@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. ([#4474](https://redirect.github.com/vuejs/language-tools/issues/4474)) - Thanks, [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj).
##### Bug Fixes
- **vscode:** Fix insider version display condition. Insiders
- **language-service:** Fix `vue-twoslash-queries` not working in LSP mode.
- **language-service:** Add null handling for script tag completion items. ([#4520](https://redirect.github.com/vuejs/language-tools/issues/4520))
- **language-core:** Fix `any` in templates if the first checked file was not root. ([#4526](https://redirect.github.com/vuejs/language-tools/issues/4526)) - Thanks, [@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. ([#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. ([#4515](https://redirect.github.com/vuejs/language-tools/issues/4515)) - Thanks, [@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 insiders
- **vscode:** if insiders versions information failed to fetch from GitHub, try to fetch from CDN insiders
- **language-service:** better sfc-level tag name completion ([#4506](https://redirect.github.com/vuejs/language-tools/issues/4506)) - Thanks [@KermanX](https://redirect.github.com/KermanX)
##### Bug Fixes
- **tsc:** update required volar version ([#4498](https://redirect.github.com/vuejs/language-tools/issues/4498)) - Thanks [@davidmatter](https://redirect.github.com/davidmatter)
- **tsc:** bump peer typescript version ([#4513](https://redirect.github.com/vuejs/language-tools/issues/4513)) - Thanks [@so1ve](https://redirect.github.com/so1ve)
##### Refactors
- **language-server:** reorganize the code structure ([#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 ([#4463](https://redirect.github.com/vuejs/language-tools/issues/4463)) - Thanks [@RayGuo-ergou](https://redirect.github.com/RayGuo-ergou)
- **docs:** update mermaid
- The following extensions have been added to Hybrid Mode’s compatibility whitelist ([#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 ([#4482](https://redirect.github.com/vuejs/language-tools/issues/4482)) - Thanks [@KermanX](https://redirect.github.com/KermanX)
- **language-core:** move declare defineProp out of function scope ([#4454](https://redirect.github.com/vuejs/language-tools/issues/4454)) - Thanks [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** compatible with TS 5.5 ([#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 ([#4457](https://redirect.github.com/vuejs/language-tools/issues/4457))
- Add feature request template ([#4490](https://redirect.github.com/vuejs/language-tools/issues/4490)) - Thanks [@so1ve](https://redirect.github.com/so1ve)
- **docs:** fix wrong links in CHANGELOG.md ([#4475](https://redirect.github.com/vuejs/language-tools/issues/4475)) - Thanks [@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 ([#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 ([#4425](https://redirect.github.com/vuejs/language-tools/issues/4425)) - Thanks [@remcohaszing](https://redirect.github.com/remcohaszing)
##### Bug Fixes
- fix(vscode): fix "as"/"instanceof" expressions syntax highlight ([#4412](https://redirect.github.com/vuejs/language-tools/issues/4412))
- fix(language-core): `ForIteratorExpression`'s `returns` property may be undefined ([#4418](https://redirect.github.com/vuejs/language-tools/issues/4418)) - Thanks [@so1ve](https://redirect.github.com/so1ve)
- fix(language-core): use defineEmits calls instead of type infer ([#4430](https://redirect.github.com/vuejs/language-tools/issues/4430)) - Thanks [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- fix(tsc): log catched errors to console ([#4451](https://redirect.github.com/vuejs/language-tools/issues/4451)) - Thanks [@mik3ybark3r](https://redirect.github.com/mik3ybark3r)
- fix(typescript-plugin): TS not working in template when tsconfig missing ([#4452](https://redirect.github.com/vuejs/language-tools/issues/4452))
- fix(language-core): use type infer instead of await import ([#4436](https://redirect.github.com/vuejs/language-tools/issues/4436)) - Thanks [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- feat(language-core): ignore type error for new functional component ([#4445](https://redirect.github.com/vuejs/language-tools/issues/4445)) - Thanks [@zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- fix(language-core): ignore type error for possible component name ([#4446](https://redirect.github.com/vuejs/language-tools/issues/4446)) - Thanks [@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 [@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 ([#4386](https://redirect.github.com/vuejs/language-tools/issues/4386))
- **language-core:** avoid report error when events do not accept parameters ([#4387](https://redirect.github.com/vuejs/language-tools/issues/4387))
- **language-core:** inline dynamic event handlers should not expect commas ([#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 ([#3718](https://redirect.github.com/vuejs/language-tools/issues/3718))
- feat(language-core): add `compileSFCScript` plugin hook ([#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 ([#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 ([#329](https://redirect.github.com/vuejs/language-tools/issues/329)) ([#3421](https://redirect.github.com/vuejs/language-tools/issues/3421))
- fix(language-core): generics with slots don't work with Vue 2.7 ([#3241](https://redirect.github.com/vuejs/language-tools/issues/3241))
- fix(language-core): template language of .md files should be markdown ([#4299](https://redirect.github.com/vuejs/language-tools/issues/4299))
- fix(language-core): no template class links when `experimentalResolveStyleCssClasses` is set to `always` ([#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 ([#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 ([#2377](https://redirect.github.com/vuejs/language-tools/issues/2377))
- **language-core:** add JSDoc support for script setup binding variables ([#3409](https://redirect.github.com/vuejs/language-tools/issues/3409))
- **language-core:** add class component support ([#4354](https://redirect.github.com/vuejs/language-tools/issues/4354))
- **language-service:** re-support scoped class links in template ([#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 ([#4365](https://redirect.github.com/vuejs/language-tools/issues/4365))
- **component-meta:** add JSDoc tags support for events
- **language-core:** support defineOptions ([#4362](https://redirect.github.com/vuejs/language-tools/issues/4362)) - Thanks [@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="{}"` ([#4333](https://redirect.github.com/vuejs/language-tools/issues/4333))
- **language-core:** fix nameless event expression formatting
- **language-core:** types imported in the ` Githubissues.
Githubissues is a development platform for aggregating issues.
This PR contains the following updates:
1.8.27
->2.1.10
Release Notes
vuejs/language-tools (vue-tsc)
### [`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 Insiders - **language-core:** auto infer `$el` type ([#4805](https://redirect.github.com/vuejs/language-tools/issues/4805)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)! - **language-core:** typed directive arg and modifiers ([#4813](https://redirect.github.com/vuejs/language-tools/issues/4813)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)! ##### Bug Fixes - **language-core:** avoid generic type loss due to destructured props ([#4821](https://redirect.github.com/vuejs/language-tools/issues/4821)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)! - **language-core:** handle `v-for` with `v-once` correctly ([#4830](https://redirect.github.com/vuejs/language-tools/issues/4830)) - Thanks to [@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` ([#4845](https://redirect.github.com/vuejs/language-tools/issues/4845)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)! - **language-service:** initialize scope with null prototype object ([#4855](https://redirect.github.com/vuejs/language-tools/issues/4855)) - Thanks to [@KazariEX](https://redirect.github.com/KazariEX)! - **language-core:** inlay hints for `