- fix(language-core): generate condition guards for model events (#5225) - Thanks to @KazariEX!
- fix(language-core): prevent global types generation in declaration files (#5239) - Thanks to @KazariEX!
- fix(language-core): prevent eager inference of slot props from generics (#5247) - Thanks to @KazariEX!
- fix(typescript-plugin): prevent highlighting native element tags with same name as components (#5253) - Thanks to @KazariEX!
- revert "fix(language-core): validate
v-modelvariable against model type"
- feat(language-core): infer prop JSDoc from
defineModel's leading comments (#5211) - Thanks to @KazariEX!
- fix(language-core): map camelized prop name correctly (#5207) - Thanks to @KazariEX!
- fix(component-meta): resolve
defineModeloptions to collectdefaultvalue (#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-modelvariable against model type (#5214) - Thanks to @KazariEX! - fix(language-core): use keywords instead of semicolons to separate script sections (#5217) - Thanks to @KazariEX!
- ci: auto close issues with
can't reproducelabel - Thanks to @KazariEX! - refactor(language-core): defer the calculation of
linkedCodeMappingsoffsets (#5220) - Thanks to @KazariEX!
- 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,$refsand$slots(#5135) - Thanks to @KazariEX! - feat(language-core): enhance single root nodes collection (#4819) - Thanks to @KazariEX!
- fix(language-core): move
generateSfcBlockSectionto 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-genericto 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
undefinedfor 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!
- refactor(language-core): drop invalid
v-scopeimplemention - Thanks to @KazariEX! - refactor(language-core): improve type declaration of
v-for- Thanks to @KazariEX! - test: enable
declarationto 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-errorsupport (#5176) - Thanks to @machty! - ci: upload extension as artifact for each commit - Thanks to @KazariEX!
- feat(language-core): navigation support for
$attrs,$slots,$refsand$elin 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
checkUnknownDirectivesoption (#5141) - Thanks to @KazariEX! - feat(language-core): support
<script vapor>- Thanks to @KazariEX!
- 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.sourceinstead of node content - fix(language-core): intersect local
$attrswith__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-forwith 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
undefinedto first param type of optional model emits (#5171) - Thanks to @KazariEX! - fix(language-core): intersect
__VLS_slotswith__VLS_ctx.$slots(#5083) - Thanks to @KazariEX! - fix(language-core): complete codegen of slot name prop (#5139) - Thanks to @KazariEX!
- refactor(language-service): read ast from codegen instead of parsing it repeatedly (#5086) - Thanks to @KazariEX!
- refactor(language-core): rewrite
vueCompilerOptionsresolution logic - refactor(component-meta): read
scriptSetupRangesfrom 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!
- 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
useSlotsand$slots(#5055) - Thanks to @KazariEX! - feat(language-core): type support of
v-modelmodifiers (#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!
- perf(typescript-plugin): use named pipe servers more efficiently (#5070)
- 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
enabledHybridModebefore 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-chatto hybrid mode compatible list (#5047) - Thanks to @KazariEX! - fix(language-core): generate generics normally when
useTemplateRefhas no parameters (#5051) - Thanks to @KazariEX! - fix(language-core): avoid clipping prop name using
.propor.attronv-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
useTemplateRefparameter 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-slotcorrectly to report error when missing default slot - Thanks to @KazariEX! - fix(language-core): map component loc to instance variable for verification - Thanks to @KazariEX!
- 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-vscodeto 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.8tov2.4.11:- fix(typescript): avoid crash when converting relatedInformation from overly large files
- fix(typescript): fix interactive refactors (volarjs/volar.js#244) - Thanks to @andrewbranch!
- fix(typescript): should not suppressing getLanguageId crashes (volarjs/volar.js#253)
- fix(typescript): force update the opened script snapshot after the language plugin is ready (volarjs/volar.js#254)
- feat(typescript): add typescriptObject option to runTsc (volarjs/volar.js#245) - Thanks to @zhiyuanzmj!
- fix(typescript): fix issue with transpiled TypeScript files not being registered with a project at all (volarjs/volar.js#250) - Thanks to @piotrtomiak!
- docs(source-map): updated API section based on #207 (volarjs/volar.js#248) - Thanks to @alamhubb!
- fix(typescript): resolve the shim used for tsc in Typescript v5.7 and up (#252) - Thanks to @kitsune7!
- language-service: auto insert
const props =withpropscompletion (#4942) - Thanks to @KazariEX!
- language-core: revert #4902
- language-core: inject
asassertion ofuseCssModuleinto 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)
- vscode: rewrite with Reactive VSCode (#4945) - Thanks to @KazariEX, @KermanX!
- vscode: reactions visualization now identifies more use cases Insiders
- language-core: auto infer
$eltype (#4805) - Thanks to @KazariEX! - language-core: typed directive arg and modifiers (#4813) - Thanks to @KazariEX!
- language-core: avoid generic type loss due to destructured props (#4821) - Thanks to @KazariEX!
- language-core: handle
v-forwithv-oncecorrectly (#4830) - Thanks to @KazariEX! - language-core: avoid generating zero-length mappings for interpolation edges
- language-core: don't assign
thisto__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&defineEmitsin generic (#4823) - Thanks to @KazariEX! - language-core: inject generics of
useTemplateRefinto 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-onon<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
valueinstead of model name into tuple (#4892) - Thanks to @KazariEX! - language-core: infer template ref's type of native elements with
v-forcorrectly (#4933) - Thanks to @KazariEX! - language-core: should wrap item with
Reactiveonv-for(#4902) - Thanks to @KazariEX!
- language-service: find destructured props only with enabled setting (#4815) - Thanks to @KazariEX!
- Upgraded Volar from
v2.4.1tov2.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
- 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!
- language-core: wrap template refs with
unrefin 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_StyleModulesafter template (#4790) - Thanks to @KazariEX! - language-core: make
exposeof non-generic template ref required (#4795) - Thanks to @zhiyuanzmj! - language-core: avoid using
__typePropswith 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)
- language-core: don't emit event lnlayhint when content is none (#4776) - Thanks to @Gehbt!
- language-core: split
__VLS_templateResult(#4781) - Thanks to @KazariEX! - language-core: wrap template virtual code into a function (#4784)
- language-core: move
templateRefintocomposables(#4791) - Thanks to @KazariEX! - language-core: generate global types for the first parsed Vue component if cannot write global types file
- 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)
- 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!
- language-core, typescript-plugin, language-server: apply snake case on globalTypes filename (#4749) - Thanks to @KazariEX!
- language-core: hoist
$refstype (#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:
fallthroughAttributescauses 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-formodifications (#4772) - Thanks to @KazariEX! - language-server: leaking named pipes (#4672)
- typescript-plugin: compatible with Yarn PnP (#4751)
- vscode: whitelist
ms-dynamics-smb.alextension for Vue Hybrid Mode. (#4765) - Thanks to @kyleweishaupt!
- Add optional "dependencies" textarea to issue template (#4758) - Thanks to @davidmatter!
- 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.libto@vue/runtime-domfor Vue 2
- 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!
- vscode: type of
vue.server.hybridModeconfig (#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
refas 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-mdcorrectly (#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!
- language-core: extract SFC root tags to separate virtual code
- language-core: removed
__hinttrick 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,createComponentMetaCheckerapi
- Upgraded Volar from
v2.4.0-alpha.18tov2.4.1:- Ensure unopened files are synced to project (#4711) (#4632) - Thanks to @davidmatter!
- 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!
- vscode: focus mode Insiders (https://github.com/volarjs/insiders/pull/24)
- language-core: Plugin API 2.1
- Added plugin hooks:
getLanguageId,isValidFile,parseSFC2 - Improve backward compatibility (#4585) - Thanks @zhiyuanzmj
- Added plugin hooks:
- language-core: support default prop when using __typeProps (#4602) - Thanks @zhiyuanzmj
- language-core: improve nested plugins (#4581) - Thanks @zhiyuanzmj
- language-service: remove
v-bindcode action (#4601) - vscode: add empty pattern to codeblock attributes scope (#4590) - Thanks @KermanX
- 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)
- Upgraded Volar from
v2.4.0-alpha.15tov2.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
addMissingImportsaction 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
- language-service: Support auto-complete for more preprocessing languages.
- language-core: Improve type compatibility with Vue 3.5. (#4474) - Thanks, @zhiyuanzmj.
- vscode: Fix insider version display condition. Insiders
- language-service: Fix
vue-twoslash-queriesnot working in LSP mode. - language-service: Add null handling for script tag completion items. (#4520)
- language-core: Fix
anyin templates if the first checked file was not root. (#4526) - Thanks, @daniluk4000.
- Upgraded Volar from
v2.4.0-alpha.2tov2.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-tscandtscbehavior. (#3526) - Fixed the
--cleanflag support forvue-tsc.
- Updated the high-level overview mermaid diagram.
- Added 'expected' and 'actually happening' sections to the bug report template. (#4515) - Thanks, @davidmatter.
- 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
- tsc: update required volar version (#4498) - Thanks @davidmatter
- tsc: bump peer typescript version (#4513) - Thanks @so1ve
- language-server: reorganize the code structure (#4507)
- Upgrade Volar from
v2.3.1tov2.4.0-alpha.2.- Hybrid Mode compatibility improvements with other TS plugins (volarjs/volar.js#216)
- 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.refactornrwl.angular-consolestyled-components.vscode-styled-componentsDivlo.vscode-styled-jsx-languageserver
Download Pages: GitHub Releases, 爱发电电圈
- Merged v2.0.22.
- vscode: directive syntax highlighting (#4482) - Thanks @KermanX
- language-core: move declare defineProp out of function scope (#4454) - Thanks @zhiyuanzmj
- language-core: compatible with TS 5.5 (#4492)
- Upgrade Volar from
v2.3.0-alpha.14tov2.3.1.- Error tolerant to
contentChangeslength (#4457)
- Error tolerant to
- Add feature request template (#4490) - Thanks @so1ve
- docs: fix wrong links in CHANGELOG.md (#4475) - Thanks @KermanX
Download Pages: GitHub Releases, 爱发电电圈
- Merged v2.0.21.
- fix(typescript-plugin): TS plugin cause type checking broken in .ts files (#4453)
Download Pages: GitHub Releases, 爱发电电圈
- Merged v2.0.20.
- feat(language-service): add localization support for zh-hk/zh-tw
- feat(vscode): enable syntax highlighting of cue code blocks in MDX (#4425) - Thanks @remcohaszing
- fix(vscode): fix "as"/"instanceof" expressions syntax highlight (#4412)
- fix(language-core):
ForIteratorExpression'sreturnsproperty may be undefined (#4418) - Thanks @so1ve - fix(language-core): use defineEmits calls instead of type infer (#4430) - Thanks @zhiyuanzmj
- fix(tsc): log catched errors to console (#4451) - Thanks @mik3ybark3r
- fix(typescript-plugin): TS not working in template when tsconfig missing (#4452)
- fix(language-core): use type infer instead of await import (#4436) - Thanks @zhiyuanzmj
- feat(language-core): ignore type error for new functional component (#4445) - Thanks @zhiyuanzmj
- fix(language-core): ignore type error for possible component name (#4446) - Thanks @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
- Upgrade Volar from
v2.2.4tov2.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
Download Pages: GitHub Releases, 爱发电电圈
- Merged v2.0.19.
- language-core: property 'xyz' does not exist on type 'abc' when using v-for (#4386)
- language-core: avoid report error when events do not accept parameters (#4387)
- language-core: inline dynamic event handlers should not expect commas (#4387)
Download Pages: GitHub Releases, 爱发电电圈
- Merged v2.0.18.
- language-core: report unknown events when strictTemplates is enabled (#3718)
- language-core: add
compileSFCScriptplugin hook (#3200) - vscode: add coffeescript syntax highlight support
- language-core: fix event handler type for hyphen-case event names
- language-core: allow binding multiple events with the same name (#4369)
- language-core: variable used in
keyappears as unused in v-for template tag (#329) (#3421) - language-core: generics with slots don't work with Vue 2.7 (#3241)
- language-core: template language of .md files should be markdown (#4299)
- language-core: no template class links when
experimentalResolveStyleCssClassesis set toalways(#4379)
- Upgrade Volar from
v2.2.2tov2.2.4.- Fixed a few URI conversion issues
- fix(typescript): empty items list should be valid completion result (#4368)
- fix(typescript): path completion not working for meta files
- Upgrade Volar services from
v0.0.44tov0.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 (volarjs/services#95)
- The following extensions have been added to Hybrid Mode’s compatibility whitelist:
miaonster.vscode-tsx-arrow-definitionrunem.lit-plugin
Download Pages: GitHub Releases, 爱发电电圈
- Merged v2.0.17.
- language-core: add JSDoc support for component (#2377)
- language-core: add JSDoc support for script setup binding variables (#3409)
- language-core: add class component support (#4354)
- language-service: re-support scoped class links in template (#4357)
- typescript-plugin: create script setup block when auto import if needed
- typescript-plugin: add JSDoc support for events in template (#4365)
- component-meta: add JSDoc tags support for events
- language-core: support defineOptions (#4362) - Thanks @zhiyuanzmj
- 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) - 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) - language-core: renaming classname within
scopednot working (#4355) - language-core:
<style>completions and html custom data completions not provided in some cases (#4092) - language-core: improve code action edits mapping fault tolerance
- language-core: support defineModel for generic component (#4345) - Thanks @zhiyuanzmj
- language-service: completion cannot trigger in SFC root
- component-meta:
forceUseTsoptions not working
- Upgrade Volar from
v2.2.0tov2.2.2.- fix(language-server): pass correct languageId when creating virtual code (volarjs/volar.js#173)
- fix(typescript): additional completion not working in plugin (#4323)
- Upgrade Volar services from
v0.0.42tov0.0.44.- feat(typescript): code action edits respect editor formatting settings (volarjs/services#30)
- fix(typescript): not being able to jump to shims module definition
- fix(typescript):
allowTextChangesInNewFilesnever true for embedded documents - perf(typescript): check
commandresolve capability only for specific refactors (volarjs/services#94)
- The following extensions have been added to Hybrid Mode’s compatibility whitelist:
mxsdev.typescript-explorer
- Deprecated
vueCompilerOptions.experimentalUseElementAccessInTemplate - Specify
packageManager(#4358) - Thanks @so1ve - docs: emoved possibly redundant duplicate reference (#4348) - Thanks @artshade
- language-service: temporarily remove references codeLens (#4364)
Download Pages: GitHub Releases, 爱发电电圈
- Merged v2.0.16.
- language-core: virtual document language ID is not updated when changing SFC style block lang
- language-core: correct logic for
defineSlotsdestructuring (#4326) - Thanks @zhiyuanzmj - language-core: ObjectDirective does not work with
defineSlots(#4327) - language-service: emmet not working in postcss style block (volarjs/volar.js#169)
- Upgrade to Volar 2.2
- language-core: export
VueEmbeddedCode(#4265) - Thanks @zhiyuanzmj - typescript-plugin: expose
FileRegistrytoproject.program(#3963) - Thanks @zcf0508 - vscode: remove outdated formatters section (#4243) - Thanks @BBboy01
Download Pages: GitHub Releases, 爱发电电圈
- Merged v2.0.15.
- Redesign additional extensions, VitePress, PetiteVue support (#4321)
- Fix custom file extensions not working in Hybrid Mode (#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)
- language-core: support defineSlots destructuring (#4312) - Thanks @zhiyuanzmj
- vscode: when enabled VitePress support, extension not activated when opening markdown files
- language-core: auto-complete not working in v-bind
- language-service: emmet completion should not be blocked by TS type evaluation (#4298)
- language-core: simplify virtual code for intrinsic elements
- Upgrade Volar from
v2.2.0-alpha.10tov2.2.0-alpha.12:- Avoid extension crash when workspace TSDK does not exist
- Fix template variables cannot be renamed at the first character in Hybrid Mode (#4297)
- Fix template virtual code mapping is misaligned in Windows in Hybrid Mode (#4297)
- Add
svelte.svelte-vscode(>=108.4.0) to Hybrid Mode compatibility whitelist (sveltejs/language-tools#2317) - component-meta: convert source code to TS
- language-core: export
allCodeFeatures(#4320) - Thanks @zhiyuanzmj
Download Pages: GitHub Releases, 爱发电电圈
- Check for Insiders version updates on startup
- Support reactions visualization for TS document
- Fixed some incorrect situations in reactions analysis
- Merged v2.0.14...a69909e81.
Download Pages: GitHub Releases, 爱发电电圈
- Merged v2.0.14.
- language-core: added search html tag (#4280) - Thanks @audunhov
- language-service: added Russian, Czech localization support
- language-core:
@ts-ignorenot working for slots (#4263) - language-core: reduce unnecessary props mapping (#4284)
- tsc: improve regexp performance for global type removal (#4260) - Thanks @blake-newman
- Upgrade Volar from
v2.2.0-alpha.8tov2.2.0-alpha.10to fix some issues:- Parameter Hints not working in Hybrid Mode (#3948)
- TS server to crash repeatedly when include large js file (#4278)
- Randomly causing errors when renaming / find definitions in Hybrid Mode (#4257, #4281, #4282)
- Unable to resolve Nuxt UI component type
- Incomplete results for find refernces in Hybrid Mode
- The following extensions have been added to Hybrid Mode’s compatibility whitelist:
bierner.lit-htmldenoland.vscode-deno(Whendeno.enableisfalse)jenkey2011.string-highlight
- language-core: improve maintainability of codegen (#4276)
- Deprecated
vueCompilerOptions.nativeTags, now respects thenodeTypeproperty of template AST node. - Dynamic component types without
v-bind:isare no longer supported.
- Deprecated
- tsc: re-introduce global types removal check (#4245)
- Upgrade Volar from
v2.2.0-alpha.7tov2.2.0-alpha.8for a vue-tsc performance issue fixes (#4238)
Download Pages: GitHub Releases, 爱发电电圈
- Merged v2.0.12.
- vscode: restart tsserver before restart vue language server (#4242)
- tsc: remove exit early condition
- typescript-plugin: handle named pipe server timeout
- language-core:
@vue-ignorenot working for fragment v-if/v-for nodes (#4232)
- Upgrade Volar from
v2.2.0-alpha.6tov2.2.0-alpha.7for a typescript plugin bug fixes
Download Pages: GitHub Releases, 爱发电电圈
- vscode: add
vue.editor.reactionsVisualizationsetting (#8)
- Merged v2.0.11.
- vscode: support for enabling/disabling typescript plugin (#4226)
- Added
typeScriptPluginOnlyoption forvue.server.hybridModesetting. - When Hybrid Mode is disabled, the Vue TypeScript Plugin will be disabled by default.
- Added
- vscode: support for
vue.format.wrapAttributessetting (#4212) - vscode: add
vue.codeActions.askNewComponentNamesetting (#4217)
- vscode:
Find File Referencesnot working when hybrid mode is disabled (#4221) - language-core: type narrowing not working for inline event handlers (#4209)
- language-core:
@vue-ignore,@vue-expect-errornot working for interpolations - language-core: improve reliability for
@vue-ignore,@vue-expect-error(#4203) - language-core: duplicated items in suggestion list for prop values (#3922)
- language-server:
vueCompilerOptionsnot working with hybrid mode (#4211) (#3959)
- Upgrade Volar from
v2.2.0-alpha.5tov2.2.0-alpha.6for avue-tscbug fixes- volarjs/volar.js#162 - Thanks @wangshunnn
- test: add test for #4203 (#4207) - Thanks @tinco
Download Pages: GitHub Releases, 爱发电电圈
- language-server: improve reactions analyze (volarjs/insiders#8)
- Merged v2.0.10.
- vscode: enable
vue.updateImportsOnFileMove.enabledby default (#3646) - vscode: re-add restart server command (#4174)
- vscode: automatically enable Hybrid Mode if possible (#4206)
- component-meta: add typing resolution for defineModel modifiers (#4175) - Thanks @stafyniaksacha
- language-service: drag and drop import respects tsconfig path aliases (#4184)
- language-service: supports auto insertion of multiple cursors (#4140)
- language-server:
additionalExtensionsoption not working for inferred project - language-core: avoid interpolation indentation affecting each other
- language-core: generate each interpolation into separate virtual code (#4165)
- language-service: ignore html
wrapAttributesformat settings for vue document (#3987) - vscode: remove duplicate ts version status (#4167)
- language-server:
.html,.mdfile language id incorrect - typescript-plugin: formatting settings not working for ts completion
- tsc: remove fake global types holder for composite projects compatibility (#4196) - Thanks @blake-newman
- language-core: cache canonical root file names with string Set
- Upgrade Volar from
v2.1.3tov2.2.0-alpha.5for a few bug fixes and performance improves, please refer to CHANGELOG.md for details. - vscode: update required VSCode version to
^1.88.0 - docs: update readme with neovim lspconfig setup (#4134) - Thanks @RayGuo-ergou
- language-core: split inline css codegen into separate plugin
- language-core: move global types codegen into separate script
- language-core: resolve virtual code features before push code
- test: added simple tests for vue-tsc and custom SFC extensions. (#4181) - Thanks @cabal95
Download Pages: GitHub Releases, 爱发电电圈
Reactions visualization (PR: https://github.com/volarjs/insiders/pull/5)
Template interpolation decorators (PR: https://github.com/volarjs/insiders/pull/4)
To disable this feature, uncheck
vue.editor.templateInterpolationDecoratorsin VSCode settings.
Note
Hybrid Mode is now disabled by default, you need to enable vue.server.hybridMode in settings to enable it explicitly.
- language-server: reintroducing full TS support and disable Hybrid Mode by default (#4119)
- vscode: check outdated
@vue/language-plugin-pugin doctor - vscode: significantly reduces the status bar space occupied
- vscode: vueCompilerOptions no longer prompts for deprecated options
- component-meta:
defineSlotsallows empty params (#4093) - thanks @Evertvdw - typescript-plugin: fault tolerance for named pipe servers json file (#4075) - thanks @Simon-He95
- language-core: generate
defineModelemits type on-demand (#4052) - thanks @so1ve - language-core: special treatment for number elements inside
v-for(#3859) - thanks @so1ve - language-plugin-pug: semantic tokens mapping failed (#4070)
- language-service update neovim lsp set up info (#4085) - thanks @CofCat456
- lint: add
tsllinter and auto fix workflow (#4100) - vscode: remove embedded language IDs (#4081) - thanks @remcohaszing
Important
If the TypeScript language server crashes since 2.0, please try using VSCode Insiders and install JavaScript and TypeScript Nightly, or temporarily downgrade to 1.8.27.
Issue: #3962
If false positive errors occur, please try disabling unrelated extensions in the Vue workspace.
Issue: #3942
- language-core: use local variables in v-bind shorthand (#4017) - thanks @so1ve
- language-core: sfc folding end position failed to mapping (#4038) - thanks @so1ve
- language-service: remove
extraLinersoption for formatting (#3943) - language-service: bump
volar-service-typescriptfor fix jsx formatting (#3949) - language-service: bump
@volar/typescriptfor fix 2.0.5 auto-complete performance regression (#4024)
- vscode: rename
vue.inlayHints.vbindShorthandsetting tovue.inlayHints.vBindShorthand(#3995) - thanks @l4dybird
- language-core: support
v-bindshorthand (#3990) - thanks @so1ve - language-service: support inlay hints for
v-bindshorthand (#3990) - thanks @so1ve - vscode: prompt to disable Svelte extension in Vue workspace to avoid conflicts
- typescript-plugin: fault tolerance for named pipe server data
- language-core: avoid
globalTypesHolderbeing specified from anode_modulesfile (#3990) - language-core: fault tolerance for plugin creation
- language-plugin-pug: failed to load due to an invalid require path (#3930)
- typescript-plugin: custom extensions do not work (#3977)
- language-service: html custom data not working (#3975)
- typescript-plugin add README (#3974) - thanks @WhyNotHugo
- component-meta update demo (#3994) - thanks @zzfn
- vscode: report requires TSDK version in doctor
- typescript-plugin: JSON parsing error when server data length > 8192 (#3961)
- vscode: identify #3942 in doctor
- vscode: compatible with VSCode 1.87.0
- vscode: search "TypeScript and JavaScript Language Features" with id (#3932)
- typescript-plugin: more reliable connection to named pipe server (#3941)
- language-service: dependency injection typescript plugin (#3994)
- vscode: fix random
Cannot access 'i' before initializationerrors - typescript-plugin:
vue-tsp-table.jsonpath is invalid in windows
- npm release does not include files (#3919)
- Hybrid Mode
- Takeover Mode has been deprecated. The extension now has the same performance as Takeover Mode by default.
- TypeScript language support has been moved from Vue language server to TypeScript plugin (#3788)
- Integrated all TypeScript editor features
- Warn when internal TypeScript extension is disabled or "TypeScript Vue Plugin" extension is installed
- Migrated to named pipe server using TypeScript LanguageService (#3908, #3916)
typescript.tsdkduplicate registration errors are no longer reported- language-service: reimplemented component tag semantic tokens in TypeScript plugin (#3915)
- language-service: reimplemented auto-import patching in TypeScript plugin (#3917)
- language-service: ensured tsserver readiness when requesting auto insert
.value(#3914)
- Upgraded to Volar 2.0 and 2.1 (#3736, #3906)
- vscode: extension now compatible with Volar Labs v2
- vscode: removed
volar.format.initialIndentoption, replaced with 3 new options:vue.format.template.initialIndentvue.format.script.initialIndentvue.format.style.initialIndent
- language-server:
ignoreTriggerCharacters,reverseConfigFilePriorityandfullCompletionListoptions are no longer supported
- Supported Component Drag and Drop Import (#3692)
- tsc: supported
vueCompilerOptions.extensionsoption (#3800) - language-core: achieved compatibility with Vue 3.4 type changes (#3860)
- vscode: prevented reading undefined properties in non-VS Code editors (#3836)
- vscode: prevented extension activation with TS files
- vscode: corrected trace server ID
- language-core: implemented emit codegen for defineModel (#3895)
- language-core: addressed transition type incompatibility with Vue 2.7.16 (#3882)
- language-core: excluded vue directive syntax injection in Angular bindings (#3891)
- component-type-helpers: resolved inference issue for Vue 3.4.20 functional component
- Renamed "Volar Language Features (Volar)" extension to "Vue - Official"
- "TypeScript Vue Plugin" extension has been deprecated
- Relocated source scripts from
srctolib(#3913) - Replaced
typescript/lib/tsserverlibraryimports withtypescript - language-core: implemented codegen based on Generator (#3778)
- language-core: generated global types in a single virtual file (#3803)
- language-core: implemented plugin API v2 (#3918)
- language-core: ignored nested codeblocks in markdown file (#3839)
- language-core: removed
experimentalAdditionalLanguageModulesand deprecated APIs (#3907) - language-service: made service plugins independent of project context
- language-server:
volar.config.jsis no longer supported - component-meta: renamed APIs
- typescript-plugin: renamed package to
@vue/typescript-plugin(#3910) - tsc: rewritten based on first-party TS API and no longer relies on TypeScript module (#3795)
- tsc: deprecated hooks API (#3793)

