Releases: vuejs/language-tools
v3.0.5
Features
- feat(language-core): introduce
compileSFCStyle
to provide style related infomation (#5548) - Thanks to @KazariEX! - feat(language-service): completion snippet for
v-for
(#5553) - Thanks to @KazariEX!
Bug Fixes
- fix(language-core): generate
modelModifiers
for explicitly declared default model name (#5558) - Thanks to @KazariEX! - fix(language-service): more responsive
.value
insertion - fix(vscode): add
class
scope fallback forcomponent
semantic tokens (#5559) - Thanks to @KazariEX! - fix(vscode): make sure extension is loaded immediately
- fix(language-service): only check
globalTypesPath
for FS files - fix(vscode): handle fail tsserver requests to avoid memory leak
- fix(vscode): do not delay the execution of
restartExtensionHost
- fix(language-core): avoid references highlight of unrelated native element tags (#5563) - Thanks to @KazariEX!
- fix(language-core): tolerance for incomplete root template tag
- fix(language-core): enable navigation code feature on directive modifiers - Thanks to @KazariEX!
Other Changes
- chore(language-service): improve global types error message for JS projects (#5574) - Thanks to @Ciallo-Chiaki!
Please refer to CHANGELOG.md for details.
❤️ Thanks to Our Sponsors
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v3.0.4
Features
- feat(language-service): check casing when dropping component into template - Thanks to @KazariEX!
- feat(language-service): native completion experience for slot names (#5552) - Thanks to @KazariEX!
Bug Fixes
- fix(language-core): avoid clearing global types path when local compiler options is present - Thanks to @KazariEX!
- fix(language-core): do not evaluate
skipTemplateCodegen
when exposing$slots
- Thanks to @KazariEX! - fix(language-service): correct kind and order of component completion items - Thanks to @KazariEX!
- fix(component-meta): filter events out of props (#5547) - Thanks to @Akryum!
Other Changes
- refactor(language-core): allow configuring
checkUnknownEvents
andcheckUnknownComponents
in sfc (#5537) - Thanks to @KazariEX! - chore(language-service): add restart server hint to global types warning - Thanks to @KazariEX!
Please refer to CHANGELOG.md for details.
❤️ Thanks to Our Sponsors
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v3.0.3
Bug Fixes
- fix(language-core): find
node_modules
based on file's directory (#5525) - Thanks to @KazariEX! - fix(language-core): do not spread exposed object (#5526) - Thanks to @KazariEX!
- fix(vscode): prompt manual reload in remote envs (#5530)
Other Changes
Please refer to CHANGELOG.md for details.
❤️ Thanks to Our Sponsors
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v3.0.2
Features
- feat(language-core): introduce
globalTypesPath
option for non-npm like environment (#5505) - Thanks to @KazariEX! - feat: forward tsserver's semantic tokens via language server (#5512) - Thanks to @KazariEX!
Bug Fixes
- fix(vscode): correct syntax highlight of control directives ending with
/
or)
- Thanks to @KazariEX! - fix(language-core): infer parameter type of union slots to be union instead of intersection (#5475) - Thanks to @KazariEX!
- fix(vscode): remove
colorizedBracketPairs
config for plaintext - fix(language-core): avoid early access to local types to skip unnecessary type generation - Thanks to @KazariEX!
- fix(language-core): treat
<component>
withoutis
prop as normal component - Thanks to @KazariEX! - fix(vscode): make sure tsserver loads
@vue/typescript-plugin
last (#5483) - fix(language-core): only keep navigation code feature on static
name
value of<slot>
- Thanks to @KazariEX! - fix(language-server): add
allowJs
to reactivity analyze host - Thanks to @KazariEX! - fix(language-core): do not set template lang to
md
for markdown (#5497) - Thanks to @KazariEX! - fix(typescript-plugin): exclude items of kind
module
from template completion - Thanks to @KazariEX! - fix(language-core): walk identifiers correctly within type nodes in interpolation (#5501) - Thanks to @KazariEX!
- fix(language-service): correct position calculation of twoslash queries (#5503) - Thanks to @KazariEX!
- fix(language-core): avoid redundant increment of block variable depth (#5511) - Thanks to @KazariEX!
- fix(language-service): re-implement twoslash queries in script - Thanks to @KazariEX!
Other Changes
- refactor(vscode): make welcome page code public - Thanks to @KazariEX!
- refactor(vscode): add premium feature settings
- chore: migrate from
minimatch
topicomatch
(#5499) - Thanks to @KazariEX! - chore: update volar to 2.4.19
- fix(typescript): skip source file search when
.d.${ext}.ts
file exists (volarjs/volar.js#277)
- fix(typescript): skip source file search when
- revert: type support of slot children (#5137) (#5514) - Thanks to @KazariEX!
Please refer to CHANGELOG.md for details.
❤️ Thanks to Our Sponsors
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v3.0.1
Bug Fixes
- fix(language-core): remove calculation logic of element inner loc (#5460) - Thanks to @KazariEX!
- fix(vscode): correct syntax highlight of
v-else
(#5470) - Thanks to @KazariEX!
Other Changes
- docs(vscode): update Russian translation for VS Code extension (#5461) - Thanks to @AndreyYolkin!
- chore(vscode): add error message for incompatible extensions
- chore: update volar to 2.4.17
- typescript: correctly use
getModeForUsageLocation
to calculate the resolution mode
- typescript: correctly use
Please refer to CHANGELOG.md for details.
❤️ Thanks to Our Sponsors
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v3.0.0
Important
Deprecation Notice: Dropping Vue 2 and vue-class-component Support in v3.1: #5455
Tip
Language Server Upgrade guide for non-vscode editors: #5456
Stability Improvements
- Hybrid Mode Always On: Now always enabled to make the system simpler and more reliable. (PR: #5248)
- Better Connection: Improved how Vue talks to TypeScript server, making it more stable. (PR: #5252, #5395, #5443)
- Version Matching: Vue language server now requires specific Volar versions to work the same in all editors. (PR: #5345)
- Fixed Startup Issue: Solved problems when both TypeScript and Vue extensions start together. (PR: #5260)
UX & DX Improvements
Navigation & Tooling
- Global components now jump to their source files rather than type definitions. (PR: #5221)
- Added support for TypeScript's
sortImports
andremoveUnusedImports
commands. (PR: #5444) - Implemented template refs document linking. (PR: #5385)
Localization Support
- VSCode extension added multilingual support for:
- Chinese (Simplified/Traditional)
- Russian
- Japanese
Streamlined UI
Compiler Options Updates
New TSConfig options:
strictSlotChildren
: Strict type constraints of slot children. (PR: #5137)strictVModel
: Strict type constraints ofv-model
. (PR: #5229)strictCssModules
: Strict type checking of CSS modules. (PR: #5164)resolveStyleImports
: Specifies whether to generate type imports for external CSS files by<style src=\"...\">
or@import \"...\"
. (PR: #5136)
Renamed Settings
Some settings have new names:
vue.complete.casing.props
→vue.suggest.propNameCasing
vue.complete.casing.tags
→vue.suggest.componentNameCasing
vue.complete.defineAssignment
→vue.suggest.defineAssignment
Details
Please refer to CHANGELOG.md for details.
Thanks to @johnsoncodehk, @KazariEX, @alex-snezhko, @PurplePlanen, @zyoshoka, @Dylancyclone, @tomblachut, @brc-dd, @zhiyuanzmj, @Akryum, @so1ve, @kshksdrt, @marktlinn, @lukashass, @menuRivera, @RayGuo-ergou!
❤️ Thanks to Our Sponsors
This project is made possible thanks to our generous sponsors:
Become a sponsor to support Vue tooling development
v2.2.8
Bug Fixes
- revert "fix(language-core): validate
v-model
variable against model type"
Please refer to CHANGELOG.md for details.
Sponsors
v2.2.6
Features
- feat(language-core): infer prop JSDoc from
defineModel
's leading comments (#5211) - Thanks to @KazariEX!
Bug Fixes
- fix(language-core): map camelized prop name correctly (#5207) - Thanks to @KazariEX!
- fix(component-meta): resolve
defineModel
options to collectdefault
value (#5209) - Thanks to @KazariEX! - fix(language-core): avoid duplicate generation of
defineExpose
's codes - Thanks to @KazariEX! - fix(language-core): generate camelized prop name for
defineModel
(#5213) - Thanks to @KazariEX! - fix(language-core): validate
v-model
variable against model type (#5214) - Thanks to @KazariEX! - fix(language-core): use keywords instead of semicolons to separate script sections (#5217) - Thanks to @KazariEX!
Other Changes
- ci: auto close issues with
can't reproduce
label - Thanks to @KazariEX! - refactor(language-core): defer the calculation of
linkedCodeMappings
offsets (#5220) - Thanks to @KazariEX!
Please refer to CHANGELOG.md for details.
Sponsors
v2.2.4
Features
- feat(language-service): map sfc compiler errors outside the template inner content (#5045) - Thanks to @KazariEX!
- feat(language-core): introduce options to control type inference of
$attrs
,$el
,$refs
and$slots
(#5135) - Thanks to @KazariEX! - feat(language-core): enhance single root nodes collection (#4819) - Thanks to @KazariEX!
Bug Fixes
- fix(language-core): move
generateSfcBlockSection
to the end to fix missing comma errors (#5184) - Thanks to @zhiyuanzmj! - fix(language-core): handle edge case of default slot name mismatch - Thanks to @KazariEX!
- fix(language-core): combine dollar variable keys from the upper level interface - Thanks to @KazariEX!
- fix(language-core): hoist the variables that may cause
TS4081
(#5192) - Thanks to @KazariEX! - fix(language-core): adjust regex match for
@vue-generic
to improve offset calculation (#5193) - Thanks to @Gehbt! - fix(language-core): correct codegen of native element refs - Thanks to @KazariEX!
- fix(language-core): ignore latex block content (#5151) - Thanks to @KazariEX!
- fix(language-core): do not emit
undefined
for model with default value (#5198) - Thanks to @RylanBueckert-Broadsign! - fix(language-service): typescript-semantic renaming first in style blocks (#4685) - Thanks to @KazariEX!
- fix(typescript-plugin): prevent removed components from appearing in the completion list - Thanks to @KazariEX!
Other Changes
- refactor(language-core): drop invalid
v-scope
implemention - Thanks to @KazariEX! - refactor(language-core): improve type declaration of
v-for
- Thanks to @KazariEX! - test: enable
declaration
to track more errors - Thanks to @KazariEX! - refactor(language-core): remove semantic highlight of style module names - Thanks to @KazariEX!
- chore(language-core): add docs for
@vue-expect-error
support (#5176) - Thanks to @machty! - ci: upload extension as artifact for each commit - Thanks to @KazariEX!
Please refer to CHANGELOG.md for details.
Sponsors
v2.2.2
Features
- feat(language-core): navigation support for
$attrs
,$slots
,$refs
and$el
in the template (#5056) - Thanks to @KazariEX! - feat(language-service): support global directives completion (#4989) - Thanks to @KazariEX!
- feat(language-core): type support of
useAttrs
(#5106) - Thanks to @KazariEX! - feat(language-core): add options for fine-grained configuration of
strictTemplates
(#5138) - feat(language-service): display deprecated info of props in completion (#5134) - Thanks to @KazariEX!
- feat(component-meta): collect destructured props defaults (#5101) - Thanks to @Akryum!
- feat(language-core): add
checkUnknownDirectives
option (#5141) - Thanks to @KazariEX! - feat(language-core): support
<script vapor>
- Thanks to @KazariEX!
Bug Fixes
- fix(language-core): ignore ts errors in function-scoped declare expressions (#5090) - Thanks to @zhiyuanzmj!
- fix(language-core, typescript-plugin): handle self-reference component correctly (#5102) - Thanks to @KazariEX!
- fix(language-core): do not generate element for
<template>
withv-slot
(#5077) - Thanks to @KazariEX! - fix(language-service): set code action kinds to avoid warning (#5096) - Thanks to @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) - Thanks to @KazariEX! - fix(language-core): only generate model modifiers for components - Thanks to @KazariEX!
- fix(language-plugin-pug): ignore duplicate attribute error of
class
(#5100) - Thanks to @KazariEX! - fix(language-core): align types of
v-for
with core (#5084) - Thanks to @KazariEX! - fix(language-core): map interpolation error with multiple variables correctly (#5158) - Thanks to @KazariEX!
- fix(vscode): ask user to reload extension host when configuration changes (#5160) - Thanks to @typed-sigterm!
- fix(typescript-plugin): update component names correctly for the first time - Thanks to @KazariEX!
- fix(language-core): add
undefined
to first param type of optional model emits (#5171) - Thanks to @KazariEX! - fix(language-core): intersect
__VLS_slots
with__VLS_ctx.$slots
(#5083) - Thanks to @KazariEX! - fix(language-core): complete codegen of slot name prop (#5139) - Thanks to @KazariEX!
Other Changes
- refactor(language-service): read ast from codegen instead of parsing it repeatedly (#5086) - Thanks to @KazariEX!
- refactor(language-core): rewrite
vueCompilerOptions
resolution logic - refactor(component-meta): read
scriptSetupRanges
from codegen - Thanks to @KazariEX! - refactor(component-meta): read node directly instead of creating sub ast - Thanks to @KazariEX!
- refactor(component-meta): read ast from
sfc.script
- Thanks to @KazariEX! - refactor(language-core): generate the type of slots with function property (#5173) - Thanks to @KazariEX!
- refactor(language-core): reduce codegen size of template returns - Thanks to @KazariEX!
- refactor(language-core): remove semantic highlight of directives - Thanks to @KazariEX!
- refactor: update alien-signals to 1.0.3 (#5181) - Thanks to @KazariEX!
Please refer to CHANGELOG.md for details.