Skip to content

Releases: vuejs/language-tools

v2.2.0

29 Dec 22:35
55638ff
Compare
Choose a tag to compare

Features

  • feat(language-core): support @vue-generic (#4971) - Thanks to @KazariEX!
  • feat(vscode): add configuration for skipping automatic detection of Hybrid Mode (#5046) - Thanks to @KazariEX!
  • feat(language-service): crawl html data of data-allow-mismatch - Thanks to @KazariEX!
  • feat(language-core): type support of $attrs (#5076) - Thanks to @KazariEX!
  • feat(language-core): type support of useSlots and $slots (#5055) - Thanks to @KazariEX!
  • feat(language-core): type support of v-model modifiers (#5061) - Thanks to @KazariEX!
  • feat(language-service): process references data at runtime to reduce bundle size (#5054) - Thanks to @KazariEX!
  • feat(language-core): support the use of sfc root comment to configure vueCompilerOptions (#4987) - Thanks to @KazariEX!
  • feat(vscode): add timeout logic for insiders fetching (#5048) - Thanks to @KazariEX!
  • feat(vscode): add examples to inlay hints configuration (#5068) - Thanks to @KazariEX!

Performance

  • perf(typescript-plugin): use named pipe servers more efficiently (#5070)

Bug Fixes

  • fix(language-core): generate script setup starting from last leading comment without @ts-check - Thanks to @KazariEX!
  • fix(language-core): make model modifiers optional (#4978) - Thanks to @stafyniaksacha!
  • fix(language-core): always report missing props on <slot> (#4982) - Thanks to @KazariEX!
  • fix(language-core): avoid unchecked index access when parsing defineEmits (#5028) - Thanks to @KazariEX!
  • fix(language-service): handle text edit of special closing tags completion correctly (#5016) - Thanks to @KazariEX!
  • fix(language-core): don't generate variable access of template refs using useTemplateRef (#5032) - Thanks to @KazariEX!
  • fix(vscode): update enabledHybridMode before activate extension (#5019) - Thanks to @nieyuyao!
  • fix(tsc): point to shimmed tsc entry point to support ts 5.7 (#5020) - Thanks to @davidmatter!
  • fix(vscode): add GitHub.copilot-chat to hybrid mode compatible list (#5047) - Thanks to @KazariEX!
  • fix(language-core): generate generics normally when useTemplateRef has no parameters (#5051) - Thanks to @KazariEX!
  • fix(language-core): avoid clipping prop name using .prop or .attr on v-model - Thanks to @KazariEX!
  • fix(language-core): handle named default import of components correctly (#5066) - Thanks to @KazariEX!
  • fix(language-core): disable navigation feature on non-binding prop values (#5040) - Thanks to @KazariEX!
  • fix(language-core): do not generate useTemplateRef parameter repeatedly (#5009)
  • fix(language-core): generate macros after script setup content (#5071) - Thanks to @KazariEX!
  • fix(language-core): correct type and completion support of vue: event (#4969) - Thanks to @KazariEX!
  • fix(language-core): prevent visiting functional components for parseScriptSetupRanges (#5049) - Thanks to @zhiyuanzmj!
  • fix(language-service): don't provide modifier completion for @ and : (#5052) - Thanks to @KazariEX!
  • fix(language-core): consistent interpolation behavior of shorthand binding (#4975) - Thanks to @KazariEX!
  • fix(language-core): resolve components with various name cases correctly (#5067) - Thanks to @KazariEX!
  • fix(language-core): map v-slot correctly to report error when missing default slot - Thanks to @KazariEX!
  • fix(language-core): map component loc to instance variable for verification - Thanks to @KazariEX!

Other Changes

  • refactor: improve code consistency (#4976) - Thanks to @KazariEX!
  • docs: update nvim guide (#4984) - Thanks to @zeromask1337!
  • docs: fix broken marketplace page (#5004) - Thanks to @rioj7!
  • chore: upgrade reactive-vscode to v0.2.7 (#4997) - Thanks to @KermanX!
  • refactor(language-service): consistent style of source and virtual code operation (#5053) - Thanks to @KazariEX!
  • refactor(language-core): remove unnecessary linked code mappings of defineProp (#5058) - Thanks to @KazariEX!
  • refactor(language-core): simplify current component info passing (#5078) - Thanks to @KazariEX!
  • Upgraded Volar from v2.4.8 to v2.4.11:

Please refer to CHANGELOG.md for details.

Sponsors

Special Sponsor

Next Generation Tooling

Platinum Sponsors

An approachable, performant and versatile framework for building web user interfaces.

Astro powers the world's fastest websites, client-side web apps, dynamic API endpoints, and everything in-between.

Essential tools for software developers and teams.

Stay in the flow with instant dev experiences.
No more hours stashing/pulling/installing locally

— just click, and start coding.

Silver Sponsors

Become a sponsor

🥚

v2.1.10

30 Oct 19:42
3f3a4b8
Compare
Choose a tag to compare

Features

  • language-service: auto insert const props = with props completion (#4942) - Thanks to @KazariEX!

Bug Fixes

  • language-core: revert #4902
  • language-core: inject as assertion of useCssModule into correct location (#4952) - Thanks to @KazariEX!
  • language-core: hold prev track id correctly (#4961) - Thanks to @KazariEX!
  • language-core: generate style modules type as needed (#4953) - Thanks to @KazariEX!
  • language-core: reference global types file with relative path (#4966)

Refactors

Please refer to CHANGELOG.md for details.

Sponsors

Special Sponsor

Stay in the flow with instant dev experiences.
No more hours stashing/pulling/installing locally

— just click, and start coding.

Platinum Sponsors

An approachable, performant and versatile framework for building web user interfaces.

Astro powers the world's fastest websites, client-side web apps, dynamic API endpoints, and everything in-between.

Essential tools for software developers and teams.

Open Source enables Microsoft products and services to bring choice, technology and community to our customers.

Silver Sponsors

Become a sponsor

v2.1.8

26 Oct 16:15
13a9e2f
Compare
Choose a tag to compare

Features

  • vscode: reactions visualization now identifies more use cases Insiders
  • language-core: auto infer $el type (#4805) - Thanks to @KazariEX!
  • language-core: typed directive arg and modifiers (#4813) - Thanks to @KazariEX!

Bug Fixes

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

Performance

  • language-service: find destructured props only with enabled setting (#4815) - Thanks to @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) - Thanks to @rchl!
    • The syntax highlighting is not applied when destructuring props (#4811)
  • chore: fix nvim config snippet in README (#4881) - Thanks to @LiamEderzeel!
  • chore: remove side effects (#4871) - Thanks to @vikingair!
  • chore: remove importsNotUsedAsValues (#4897) - Thanks to @KazariEX!
  • chore(vscode): switch to "module": "CommonJS" (#4944) - Thanks to @KazariEX!
  • test: fix incorrect default value (#4934) - Thanks to @jh-leong!
  • test(tsc): add a test case for class component

Please refer to CHANGELOG.md for details.

Sponsors

Special Sponsor

Stay in the flow with instant dev experiences.
No more hours stashing/pulling/installing locally

— just click, and start coding.

Platinum Sponsors

An approachable, performant and versatile framework for building web user interfaces.

Astro powers the world's fastest websites, client-side web apps, dynamic API endpoints, and everything in-between.

Essential tools for software developers and teams.

Open Source enables Microsoft products and services to bring choice, technology and community to our customers.

Silver Sponsors

Become a sponsor

v2.1.6

04 Sep 19:13
a8038a6
Compare
Choose a tag to compare

Features

  • language-plugin-pug: support initial indentation (#4774)
  • language-service: JSDoc display support when typing props on component template (#4796) - Thanks to @joy-yu!
  • language-core: typed directives in template (#4807) - Thanks to @KazariEX!

Bug Fixes

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

Performance

  • language-core: don't emit event lnlayhint when content is none (#4776) - Thanks to @Gehbt!

Other Changes

  • language-core: split __VLS_templateResult (#4781) - Thanks to @KazariEX!
  • language-core: wrap template virtual code into a function (#4784)
  • language-core: move templateRef into composibles (#4791) - Thanks to @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) - Thanks to @KazariEX!
  • tsc: update to Vue 3.5 (#4725)
  • tsc: unknown props on non-strict generic component (#4792)

Please refer to CHANGELOG.md for details.

Sponsors

Special Sponsor

Stay in the flow with instant dev experiences.
No more hours stashing/pulling/installing locally

— just click, and start coding.

Platinum Sponsors

An approachable, performant and versatile framework for building web user interfaces.

Astro powers the world's fastest websites, client-side web apps, dynamic API endpoints, and everything in-between.

Essential tools for software developers and teams.

Open Source enables Microsoft products and services to bring choice, technology and community to our customers.

Silver Sponsors

Become a sponsor

v2.1.4

31 Aug 19:15
a95b51a
Compare
Choose a tag to compare

Features

  • typescript-plugin, language-server: generate global types file into node_modules/.vue-global-types (#4752) - Thanks to @KazariEX!
  • language-core: navigation support for template-ref (#4726) - Thanks to @KazariEX!

Bug Fixes

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

Other Changes

  • Add optional "dependencies" textarea to issue template (#4758) - Thanks to @davidmatter!

Please refer to CHANGELOG.md for details.

Sponsors

Special Sponsor

Stay in the flow with instant dev experiences.
No more hours stashing/pulling/installing locally

— just click, and start coding.

Platinum Sponsors

An approachable, performant and versatile framework for building web user interfaces.

Astro powers the world's fastest websites, client-side web apps, dynamic API endpoints, and everything in-between.

Essential tools for software developers and teams.

Open Source enables Microsoft products and services to bring choice, technology and community to our customers.

Silver Sponsors

Become a sponsor

v2.1.2

29 Aug 08:26
Compare
Choose a tag to compare

Bug Fixes

  • language-core, typescript-plugin, language-server: write globalTypes into dist for correct export (#4740) (#4737) (#4738) (#4739) - Thanks to @KazariEX!
  • language-core: don't default vueCompilerOptions.lib to @vue/runtime-dom for Vue 2

Please refer to CHANGELOG.md for details.

Sponsors

Special Sponsor

Stay in the flow with instant dev experiences.
No more hours stashing/pulling/installing locally

— just click, and start coding.

Platinum Sponsors

An approachable, performant and versatile framework for building web user interfaces.

Astro powers the world's fastest websites, client-side web apps, dynamic API endpoints, and everything in-between.

Essential tools for software developers and teams.

Open Source enables Microsoft products and services to bring choice, technology and community to our customers.

Silver Sponsors

Become a sponsor

v2.1.0

29 Aug 00:37
Compare
Choose a tag to compare

Features

  • language-core: inlay hints for destructured props (#4634) - Thanks to @KazariEX!
  • language-core: typed fallthrough attributes (#4103) - Thanks to @A5rocks, @so1ve!
  • language-core: document links for classname within :class (#4642) - Thanks to @KazariEX!
  • language-core: auto infer type for $refs & useTemplateRef (#4644) - Thanks to @zhiyuanzmj!
  • language-core: type support for CSS Modules API (#4674) - Thanks to @KazariEX!
  • language-service: better completion for directives (#4640) - Thanks to @KazariEX!
  • language-service: better sorting & filtering of completion (#4671) - Thanks to @KazariEX!
  • language-service: add style scoped and module completion (#4705) - Thanks to @runyasak!

Bug Fixes

  • vscode: type of vue.server.hybridMode config (#4703) - Thanks to @KermanX!
  • language-core: dependency on vulnerable version of vue-template-compiler (#4613) - Thanks to @yyx990803!
  • language-core: support parse method to access ctx var in object (#4609) - Thanks to @linghaoSu!
  • language-core: escape \ and ' in className avoid type error (#4619) - Thanks to @linghaoSu!
  • language-core: semantic highlight of the end tag of namespaced elements (#4623) - Thanks to @KermanX!
  • language-core: nullable modelvalues (#4648) - Thanks to @davidmatter!
  • language-core: should try casting dynamic slot name into constant (#4669) - Thanks to @KermanX!
  • language-core: local name support for prop using runtime api (#4650) - Thanks to @KazariEX!
  • language-core: optimize matching of scoped class and v-bind() (#4679) - Thanks to @KazariEX!
  • language-core: should preserve generic info in directive (#4686) - Thanks to @KermanX!
  • language-core: generate ref as identifier instead of interpolation (#4688) - Thanks to @KazariEX!
  • language-core: correct type narrowing from script to template (#4689) - Thanks to @KazariEX!
  • language-core: should camelize prop name in experimentalModelPropName (#4691) - Thanks to @KermanX!
  • language-core: drop duplicate hints on incomplete tag (#4696) - Thanks to @KazariEX!
  • language-core: correct inlay hints for v-bind with modifier (#4721) - Thanks to @KazariEX!
  • language-core: transform range of file-md correctly (#4735) - Thanks to @KazariEX!
  • language-plugin-pug: should cache proxyed object (#4626) - Thanks to @KermanX!
  • language-plugin-pug: compute offset correctly of pug class (#4652) - Thanks to @KazariEX!
  • language-service: completion documentations for binding attributes (#4667) - Thanks to @KazariEX!
  • language-service: avoid converting internal id of special tags (#4643) - Thanks to @KazariEX!
  • language-service: reinstate the completion for modifiers (#4639) - Thanks to @KazariEX!
  • language-service: consistent data from provider for sfc completion (#4645) - Thanks to @KazariEX!
  • typescript-plugin: unknown request type warning (#4715) - Thanks to @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)
  • language-core: do not wrap template virtual code with function (#4731)
  • language-core: write real files to FS for shared global types (#4736)
  • component-meta: remove deprecated createComponentMetaCheckerByJsonConfig, createComponentMetaChecker api

Other Changes

  • Upgraded Volar from v2.4.0-alpha.18 to v2.4.1:
  • ci: integrated pkg.pr.new
  • tsc: test all typecheck cases in one tsconfig (#4723)
  • tsc: add test for TS-next (#4724)
  • tsc: add tests for for #3779, #3820 (#3838) - Thanks to @so1ve!
  • vscode: add grammar test (#3861) - Thanks to @so1ve!
  • language-service: migrate tests to @volar/test-utils (#4719)
  • language-core: add scoped classes renaming case (#4727) - Thanks to @KazariEX!

Please refer to CHANGELOG.md for details.

Sponsors

Special Sponsor

Stay in the flow with instant dev experiences.
No more hours stashing/pulling/installing locally

— just click, and start coding.

Platinum Sponsors

An approachable, performant and versatile framework for building web user interfaces.

Astro powers the world's fastest websites, client-side web apps, dynamic API endpoints, and everything in-between.

Essential tools for software developers and teams.

Open Source enables Microsoft products and services to bring choice, technology and community to our customers.

Silver Sponsors

Become a sponsor

v2.0.28

22 Jul 06:50
Compare
Choose a tag to compare

Features

  • vscode: focus mode Insiders (volarjs/insiders#24)
  • language-core: Plugin API 2.1
    • Added plugin hooks: getLanguageId, isValidFile, parseSFC2
    • Improve backward compatibility (#4585) - Thanks @zhiyuanzmj
  • language-core: support default prop when using __typeProps (#4602) - Thanks @zhiyuanzmj
  • language-core: improve nested plugins (#4581) - Thanks @zhiyuanzmj
  • language-service: remove v-bind code action (#4601)
  • vscode: add empty pattern to codeblock attributes scope (#4590) - Thanks @KermanX

Fixes

  • tsc: errors should be thrown instead of being console.log printed
  • language-server: observe named pipes changes when server startup (#4292)
  • language-core: infer define model type from options type (#4545) - Thanks @davidmatter
  • language-core: type-checking not working with hyphen in slot name with JS (#4478) - Thanks @KermanX
  • language-core: add type check for v-model without argument (#4598) - Thanks @zhiyuanzmj
  • language-service: filter special tags (#4596) - Thanks @so1ve
  • typescript-plugin: improve named pipes reliability (#4603)
  • language-core: property access is incorrectly identified as compound expression (#4600)
  • language-core: fix compatibility of generic component virtual code with TS 5.5 (#4577)
  • tsc: TS4082 not reported for functional component (#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)
    • Add workspace symbols support in Hybrid Mode (#4595)
    • Add workspace addMissingImports action support in Hybrid Mode (#4586)
  • Fix yarn 4 compatibility (#4587)
  • Add vue vine to hybrid mode compatible list (#4543) - Thanks @so1ve
  • Add global components prop validation test (#4542) - Thanks @davidmatter

Please refer to CHANGELOG.md for details.

Sponsors

Special Sponsor

Stay in the flow with instant dev experiences.
No more hours stashing/pulling/installing locally

— just click, and start coding.

Platinum Sponsors

An approachable, performant and versatile framework for building web user interfaces.

Astro powers the world's fastest websites, client-side web apps, dynamic API endpoints, and everything in-between.

Essential tools for software developers and teams.

Open Source enables Microsoft products and services to bring choice, technology and community to our customers.

Silver Sponsors

Become a sponsor

v2.0.26

04 Jul 13:15
Compare
Choose a tag to compare

Features

  • language-service: Support auto-complete for more preprocessing languages.
  • language-core: Improve type compatibility with Vue 3.5. (#4474) - Thanks, @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)
  • language-core: Fix any in templates if the first checked file was not root. (#4526) - Thanks, @daniluk4000.

Other Changes

  • Upgraded Volar from v2.4.0-alpha.2 to v2.4.0-alpha.15:
    • 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)
    • 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) - Thanks, @davidmatter.

Please refer to CHANGELOG.md for details.

Sponsors

Special Sponsor

Stay in the flow with instant dev experiences.
No more hours stashing/pulling/installing locally

— just click, and start coding.

Platinum Sponsors

An approachable, performant and versatile framework for building web user interfaces.

Astro powers the world's fastest websites, client-side web apps, dynamic API endpoints, and everything in-between.

Essential tools for software developers and teams.

Open Source enables Microsoft products and services to bring choice, technology and community to our customers.

Silver Sponsors

Become a sponsor

v2.0.24

04 Jul 13:12
Compare
Choose a tag to compare

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) - Thanks @KermanX

Bug Fixes

Refactors

  • language-server: reorganize the code structure (#4507)

Other Changes

  • Upgrade Volar from v2.3.1 to v2.4.0-alpha.2.
  • docs: add nvim-cmp integration (#4463) - Thanks @RayGuo-ergou
  • docs: update mermaid
  • The following extensions have been added to Hybrid Mode’s compatibility whitelist (#4206):
    • p42ai.refactor
    • nrwl.angular-console
    • styled-components.vscode-styled-components
    • Divlo.vscode-styled-jsx-languageserver

Please refer to CHANGELOG.md for details.

Sponsors

Special Sponsor

Stay in the flow with instant dev experiences.
No more hours stashing/pulling/installing locally

— just click, and start coding.

Platinum Sponsors

An approachable, performant and versatile framework for building web user interfaces.

Astro powers the world's fastest websites, client-side web apps, dynamic API endpoints, and everything in-between.

Essential tools for software developers and teams.

Open Source enables Microsoft products and services to bring choice, technology and community to our customers.

Silver Sponsors

Become a sponsor