Releases: vuejs/language-tools
v3.2.1
language-core
component-meta
component-type-helpers
- fix: npm package is missing build files (#5893)
language-service
- feat: props completion now only suggests
:xxx(shorthand) when no prefix is typed, instead of bothxxxand:xxx
Our Sponsors ❤️
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v3.2.0
vscode
- fix: Vue TS highlighting when trailing type alias is missing semicolon (#5853) - Thanks to @serkodev!
- perf: replace
fast-diffwith custom character-by-character alignment algorithm (#5849) (#5851) - refactor: update Vue grammar scope name to "text.html.vue" (#5856)
- test: add test for embedded grammars (#5861) - Thanks to @serkodev!
language-service
- feat: rich hover message (#5881)
- feat: support markdown JSDoc for rich hover message description (#5890) - Thanks to @serkodev!
- chore: adjust rich hover message title layout (#5889) - Thanks to @serkodev!
component-meta
- feat: add
tagsto slots and exposed (#5862) - Thanks to @aj-dev! - feat: filter out irrelevant properties from
exposed(#5868) - Thanks to @aj-dev! - refactor: redundant logic between deduplication and language-core (#5875)
- refactor: de-dependency from component-type-helpers (#5876)
- refactor: search prop defaults with symbol declarations (#5879)
- refactor: deprecate "noDeclarations" and "forceUseTs" options (#5887)
typescript-plugin
- feat: include leading dot when finding references to CSS classes (#5852)
- fix: missing module error after file rename (#5839) - Thanks to @serkodev!
- fix: prioritize non-warning completion entries over warning ones (#5847)
- fix: always pass rest parameters for future compatibility (#5859) - Thanks to @KazariEX!
- fix: add nullish guards before accessing
ts.CompletionEntryData(#5869) - Thanks to @KazariEX! - fix: handle import type nodes in definition proxy (#5873)
- fix: handle type imports in component auto-import(#5874)
language-core
- feat: revert overcorrection of
v-fortype inference (#5836) - feat: align
v-forkey type withObject.keys(#5837) - Thanks to @serkodev! - feat: narrow component and directive types (#5841)
- feat: support
<!-- @strictTemplates -->magic comment (#5845) - fix: correctly resolve
<script src="">(#5838) - fix: preserve template slot wrappers during
createIfBranch(#5844) - Thanks to @serkodev! - fix: include end tag locations when renaming global components
- refactor: replace dynamic types generation with static files (#5872)
- refactor: improve Vue version detection and plugin resolution
component-type-helpers
- refactor: remove
ComponentTypehelper
workspace
- chore: update testing infrastructure (#5848)
- chore: use tsgo in development (#5860)
- chore: reduce local dependencies and update workflows (#5863)
- chore: upgrade tsslint and vite to pre-release versions
- chore: delete tests for Vue 3.4 (#5871)
Our Sponsors ❤️
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v3.1.8
Features
- feat(vscode): support multiline attribute for
<script>and<style>tag (#5830) - Thanks to @serkodev! - feat(vscode): supports format with selected range (#5761) - Thanks to @serkodev!
- feat(language-service): add tsconfig-based document link support for Pug
Bug Fixes
- fix(language-core): limit the range of parseDiagnostics checks (#5823)
- fix(language-core): restore default import bindings for template scope (#5824) - Thanks to @serkodev!
- fix(typescript-plugin): get
preferencesandformatOptionsin tsserver (#5829) - fix(language-core): avoid generating component options within the setup scope (#5832)
Other Changes
- perf(language-core): dedupe component options generation (#5831)
❤️ Thanks to Our Sponsors
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v3.1.7
Features
Bug Fixes
- fix(language-core): avoid using
Identifier.textproperty (#5810) - fix(language-core): generate script separator on demand (#5816)
- fix(language-core): avoid invalid
__VLS_Slotsgeneration
Other Changes
❤️ Thanks to Our Sponsors
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v3.1.6
Features
- feat(vscode): add settings to enable per-block formatting (#5784) - Thanks to @serkodev!
- feat(language-service): enhanced component auto import (#5790)
- feat(component-meta): add component name and description fields (#5797)
- feat(typescript-plugin): add support for template "Add Import" quick fix (#5799) - Thanks to @serkodev!
- feat(typescript-plugin): mapping JSDoc informations from
<script setup>(#5805) - feat(vscode): support tsdk path for Eclipse Theia (#5806) - Thanks to @serkodev!
Bug Fixes
- fix(language-service): ignore intrinsic elements when detect tag name casing (#5771)
- fix(language-core):
createParsedCommandLineByJsonparsed incorrect options since v3.1.5 (#5768 (comment)) - fix(vscode): make
vue.server.pathcompatible with Windows (#5772) - fix(vscode): analyze interpolation highlight ranges based on AST (#5777)
- fix(vscode): sync latest vscode html language configuration (#5740)
- fix(language-core): enhance
getVIfNodeto supportv-else-ifdirectives (#5765) - Thanks to @serkodev! - fix(language-core): generate
{}instead of its string value forstyle="..."(#5781) - Thanks to @KazariEX! - fix(language-core):
v-bind="$attrs"loses navigation wheninferTemplateDollarAttrsis disabled (#5783) - fix(language-service): skip
const props =completion in StringLiteral (#5786) - fix(language-core): unable to get completion for the second scoped class name
- fix(language-service): format components with HTML void-element names (#5788) - Thanks to @serkodev!
- fix(language-service): properly handle promise when resolving CSS links (#5785)
- fix(language-core): infer
$eltype for generic components usinginferComponentDollarEl(#5794) - fix(language-core): ensure
<script>content generates before<script setup>(#5795) - fix(language-core): remove
bypassDefineComponenthack for better JS support (#4876) (#5379) - fix(language-core):
Prettify<T>caused generic props gets inferred asunknown(#5667) - Thanks to @so1ve! - fix(vscode): handle leading
<as operator in SFC scripts (#5801) - Thanks to @serkodev! - fix(vscode): patch
isTypeScriptDocumentin VSCode fortypescript.preferences.autoImportSpecifierExcludeRegexesconfig support (#5364) - fix(language-core): ensure type consistency for optional boolean props (#5803)
- fix(language-core): add compatibility for
vaporattr (#5496) - fix(language-core): AST fault tolerance for key binding on template (#5807)
Performance
- perf(language-core): reuse ts asts for
:class- Thanks to @KazariEX!
Other Changes
- Revert "refactor(typescript-plugin): remove go to definition trick for auto imported components (#5733)"
- docs(typescript-plugin): update Neovim configuration link (#5775) - Thanks to @AlexVagrant!
- refactor(language-core): normalize template AST (#5782)
- refactor(language-core): split style codegen (#5787)
- refactor(language-core): remove
debuggerfrom virtual code for tsslint compatibility - refactor(language-core): remove legacy navigation support in
ref="xxx" - refactor(language-core): reduce codegen options (#5804)
- refactor(component-meta): deprecated
rawTypeand__internal__.tsLs(#5808) - chore: update volar to 2.4.26
- feat: fallback resolution mode for
createResolveModuleName(volarjs/volar.js#293) (#5644) - Thanks to @serkodev!
- feat: fallback resolution mode for
❤️ Thanks to Our Sponsors
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v3.1.5
Features
- feat(language-service): support tsconfig path alias resolution for document links (#5562) - Thanks to @KazariEX!
- feat(language-server): add
serverInfoto initialized result (#5767) - Thanks to @kada49!
Bug Fixes
- fix(vscode): correct highlighting of tags starting with
template(#5755) - Thanks to @serkodev and @KazariEX! - fix(language-core): allow loose props checks on generic components (#5748) - Thanks to @serkodev!
- fix(language-core): avoid
vue-tsccrash during single file checks (#5768) - Thanks to @KazariEX! - fix(language-core): dispose virtual code correctly - Thanks to @KazariEX!
Performance
❤️ Thanks to Our Sponsors
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v3.1.4
Bug Fixes
- fix(language-service): prevent auto-insertion of html snippets in template interpolation (#5744) - Thanks to @serkodev!
- fix(language-service): strip interpolations from document passed to html service - Thanks to @KazariEX!
- fix(language-core): report unused
@ts-expect-errordirective on components with loose props checks (#5750) - Thanks to @serkodev and @KazariEX! - fix(language-core): respect directive comments before
v-else(#5753) - Thanks to @serkodev and @KazariEX!
Other Changes
- refactor(language-core): re-implement component references by codegen (#5736) - Thanks to @KazariEX!
- refactor(language-core): simplify calculation of full interpolation content - Thanks to @KazariEX!
❤️ Thanks to Our Sponsors
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v3.1.3
Warning
We removed the builtin support for skipping declaration files when triggering Go to Definition on auto imported components in template. Please use https://github.com/KazariEX/dxup/tree/main/packages/unimport instead.
Features
- feat(typescript-plugin): allow triggering file references on
<template>(#5734) - Thanks to @KazariEX!
Bug Fixes
Other Changes
- refactor(language-core): generate intrinsic elements variable into global types (#5730) - Thanks to @KazariEX!
- refactor(typescript-plugin): remove go to definition trick for auto imported components (#5733) - Thanks to @KazariEX!
❤️ Thanks to Our Sponsors
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v3.1.2
Bug Fixes
- fix(component-meta): import type helpers by relative path
- fix(language-core): fix syntax error when
propTypeshas no elements (#5704) - Thanks to @so1ve! - fix(language-core): omit defined emit props only (#5705) - Thanks to @so1ve!
Other Changes
❤️ Thanks to Our Sponsors
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v3.1.1
Features
- feat(language-server): support
--tsdkcommand line arg (#5691)
Bug Fixes
- fix(language-core): tolerate non-literal export default (#5675) - Thanks to @KazariEX!
- fix(language-core): use component instance props as fallthrough attributes (#5686) - Thanks to @KazariEX!
- fix(typescript-plugin): determine if variable is
RefbyRefSymbolproperty (#5687) - Thanks to @KazariEX! - fix(language-core): exclude effect of comments on root node (#5689) - Thanks to @KazariEX!
- fix(typescript-plugin): place
__vue__in project instead of program (#5690) - fix(component-type-helpers): remove deprecated
$scopedSlotssupport for Vue 2 - fix(language-core): replace markdown links after sfc blocks processing (#5695) - Thanks to @KazariEX!
- fix(language-core): do not report unused error on
__VLS_export(#5696) - Thanks to @KazariEX!
Other Changes
- refactor(language-core): reimplement
writeGlobalTypeswithout side effects
❤️ Thanks to Our Sponsors
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development