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) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](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 ([#​5056](https://redirect.github.com/vuejs/language-tools/issues/5056)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - feat(language-service): support global directives completion ([#​4989](https://redirect.github.com/vuejs/language-tools/issues/4989)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - feat(language-core): type support of `useAttrs` ([#​5106](https://redirect.github.com/vuejs/language-tools/issues/5106)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - feat(language-core): add options for fine-grained configuration of `strictTemplates` ([#​5138](https://redirect.github.com/vuejs/language-tools/issues/5138)) - feat(language-service): display deprecated info of props in completion ([#​5134](https://redirect.github.com/vuejs/language-tools/issues/5134)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - feat(component-meta): collect destructured props defaults ([#​5101](https://redirect.github.com/vuejs/language-tools/issues/5101)) - Thanks to [@​Akryum](https://redirect.github.com/Akryum)! - feat(language-core): add `checkUnknownDirectives` option ([#​5141](https://redirect.github.com/vuejs/language-tools/issues/5141)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - feat(language-core): support `<script vapor>` - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! ##### Bug Fixes - fix(language-core): ignore ts errors in function-scoped declare expressions ([#​5090](https://redirect.github.com/vuejs/language-tools/issues/5090)) - Thanks to [@​zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)! - fix(language-core, typescript-plugin): handle self-reference component correctly ([#​5102](https://redirect.github.com/vuejs/language-tools/issues/5102)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - fix(language-core): do not generate element for `<template>` with `v-slot` ([#​5077](https://redirect.github.com/vuejs/language-tools/issues/5077)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - fix(language-service): set code action kinds to avoid warning ([#​5096](https://redirect.github.com/vuejs/language-tools/issues/5096)) - Thanks to [@​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` ([#​5113](https://redirect.github.com/vuejs/language-tools/issues/5113)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - fix(language-core): only generate model modifiers for components - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - fix(language-plugin-pug): ignore duplicate attribute error of `class` ([#​5100](https://redirect.github.com/vuejs/language-tools/issues/5100)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - fix(language-core): align types of `v-for` with core ([#​5084](https://redirect.github.com/vuejs/language-tools/issues/5084)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - fix(language-core): map interpolation error with multiple variables correctly ([#​5158](https://redirect.github.com/vuejs/language-tools/issues/5158)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - fix(vscode): ask user to reload extension host when configuration changes ([#​5160](https://redirect.github.com/vuejs/language-tools/issues/5160)) - Thanks to [@​typed-sigterm](https://redirect.github.com/typed-sigterm)! - fix(typescript-plugin): update component names correctly for the first time - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - fix(language-core): add `undefined` to first param type of optional model emits ([#​5171](https://redirect.github.com/vuejs/language-tools/issues/5171)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - fix(language-core): intersect `__VLS_slots` with `__VLS_ctx.$slots` ([#​5083](https://redirect.github.com/vuejs/language-tools/issues/5083)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - fix(language-core): complete codegen of slot name prop ([#​5139](https://redirect.github.com/vuejs/language-tools/issues/5139)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! ##### Other Changes - refactor(language-service): read ast from codegen instead of parsing it repeatedly ([#​5086](https://redirect.github.com/vuejs/language-tools/issues/5086)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - refactor(language-core): rewrite `vueCompilerOptions` resolution logic - refactor(component-meta): read `scriptSetupRanges` from codegen - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - refactor(component-meta): read node directly instead of creating sub ast - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - refactor(component-meta): read ast from `sfc.script` - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - refactor(language-core): generate the type of slots with function property ([#​5173](https://redirect.github.com/vuejs/language-tools/issues/5173)) - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - refactor(language-core): reduce codegen size of template returns - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - refactor(language-core): remove semantic highlight of directives - Thanks to [@​KazariEX](https://redirect.github.com/KazariEX)! - refactor: update alien-signals to 1.0.3 ([#​5181](https://redirect.github.com/vuejs/language-tools/issues/5181)) - Thanks to [@​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 ([#​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 `<component :is>` and `<slot :name>` ([#​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 `<slot>` ([#​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 <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 ([#​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 <sup>Insiders</sup> - **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. <sup>Insiders</sup> - **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 <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 ([#​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 `<script setup>` should not be used as a variable in template ([#​4353](https://redirect.github.com/vuejs/language-tools/issues/4353)) - **language-core:** renaming classname within `scoped` not working ([#​4355](https://redirect.github.com/vuejs/language-tools/issues/4355)) - **language-core:** `<style>` completions and html custom data completions not provided in some cases ([#​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 ([#​4345](https://redirect.github.com/vuejs/language-tools/issues/4345)) - Thanks [@​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 ([#​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` ([#​4358](https://redirect.github.com/vuejs/language-tools/issues/4358)) - Thanks [@​so1ve](https://redirect.github.com/so1ve) - **docs:** emoved possibly redundant duplicate reference ([#​4348](https://redirect.github.com/vuejs/language-tools/issues/4348)) - Thanks [@​artshade](https://redirect.github.com/artshade) - **language-service:** temporarily remove references codeLens ([#​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 ([#​4326](https://redirect.github.com/vuejs/language-tools/issues/4326)) - Thanks [@​zhiyuanzmj](https://redirect.github.com/zhiyuanzmj) - **language-core:** ObjectDirective does not work with `defineSlots` ([#​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` ([#​4265](https://redirect.github.com/vuejs/language-tools/issues/4265)) - Thanks [@​zhiyuanzmj](https://redirect.github.com/zhiyuanzmj) - **typescript-plugin:** expose `FileRegistry` to `project.program` ([#​3963](https://redirect.github.com/vuejs/language-tools/issues/3963)) - Thanks [@​zcf0508](https://redirect.github.com/zcf0508) - **vscode:** remove outdated formatters section ([#​4243](https://redirect.github.com/vuejs/language-tools/issues/4243)) - Thanks [@​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 ([#​4321](https://redirect.github.com/vuejs/language-tools/issues/4321)) - Fix custom file extensions not working in Hybrid Mode ([#​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 ([#​4312](https://redirect.github.com/vuejs/language-tools/issues/4312)) - Thanks [@​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>
Unraid Connect
Monorepo for Unraid Connect and the Unraid API.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
About The Project
Built With
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.
- Bash
- Docker (for macOS folks, Orbstack works too)
- Node.js (v20)
- Just
- An Unraid server for development
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:
- Log in to your Unraid development server.
- Use the navigation menu to go to 'Users'.
- Click on the user you logged in with (e.g.
root) - Paste your SSH public key into 'SSH authorized keys' and click 'Save'.
Installation
-
Clone and enter the repo
# Optionally, give the cloned folder a more specific name gh repo clone unraid/api api-monorepo cd api-monorepo -
Run the monorepo setup command.
just setupThis will run installation scripts, container builds, and some git scripts to reduce noise (i.e. personal editor customizations, etc).
-
Run the API container
cd api npm run container:start -
This should bring you inside the API container. There, run the following command to start the server:
npm run dev -
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
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
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.
-
Create a Work Intent
- Go to Issues → New Issue → Work Intent
- Fill out the brief template describing what you want to work on
- The issue will be automatically labeled as
work-intentandunapproved
-
Wait for Approval
- A core developer will review your Work Intent
- They may ask questions or suggest changes
- Once approved, the
unapprovedlabel will be removed
-
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!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Top contributors
Contact
@UnraidOfficial - support@unraid.net.com
Project Link: https://github.com/unraid/api