Join the Insiders Program for more exclusive features and updates.
- revert "fix(language-core): validate
v-model
variable 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
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!
- 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!
- 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!
- 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!
- 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!
- 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!
- 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!
- 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!
- 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!
- 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
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
onv-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!
- 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
tov2.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 =
withprops
completion (#4942) - Thanks to @KazariEX!
- language-core: revert #4902
- language-core: inject
as
assertion ofuseCssModule
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)
- vscode: rewrite with Reactive VSCode (#4945) - Thanks to @KazariEX, @KermanX!
- 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!
- language-core: avoid generic type loss due to destructured props (#4821) - Thanks to @KazariEX!
- language-core: handle
v-for
withv-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
onv-for
(#4902) - Thanks to @KazariEX!
- language-service: find destructured props only with enabled setting (#4815) - Thanks to @KazariEX!
- Upgraded Volar from
v2.4.1
tov2.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
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)
- 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
templateRef
intocomposables
(#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
$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!
- 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.lib
to@vue/runtime-dom
for 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.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!
- 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
- Upgraded Volar from
v2.4.0-alpha.18
tov2.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-bind
code 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.15
tov2.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
- 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-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.
- Upgraded Volar from
v2.4.0-alpha.2
tov2.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
andtsc
behavior. (#3526) - Fixed the
--clean
flag 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.1
tov2.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.refactor
nrwl.angular-console
styled-components.vscode-styled-components
Divlo.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.14
tov2.3.1
.- Error tolerant to
contentChanges
length (#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
'sreturns
property 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.4
tov2.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
compileSFCScript
plugin 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
key
appears 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
experimentalResolveStyleCssClasses
is set toalways
(#4379)
- Upgrade Volar from
v2.2.2
tov2.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.44
tov0.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-definition
runem.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
scoped
not 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:
forceUseTs
options not working
- Upgrade Volar from
v2.2.0
tov2.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.42
tov0.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):
allowTextChangesInNewFiles
never true for embedded documents - perf(typescript): check
command
resolve 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
defineSlots
destructuring (#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
FileRegistry
toproject.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.10
tov2.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-ignore
not 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.8
tov2.2.0-alpha.10
to 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-html
denoland.vscode-deno
(Whendeno.enable
isfalse
)jenkey2011.string-highlight
- language-core: improve maintainability of codegen (#4276)
- Deprecated
vueCompilerOptions.nativeTags
, now respects thenodeType
property of template AST node. - Dynamic component types without
v-bind:is
are no longer supported.
- Deprecated
- tsc: re-introduce global types removal check (#4245)
- Upgrade Volar from
v2.2.0-alpha.7
tov2.2.0-alpha.8
for 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-ignore
not working for fragment v-if/v-for nodes (#4232)
- Upgrade Volar from
v2.2.0-alpha.6
tov2.2.0-alpha.7
for a typescript plugin bug fixes
Download Pages: GitHub Releases, 爱发电电圈
- vscode: add
vue.editor.reactionsVisualization
setting (#8)
- Merged v2.0.11.
- vscode: support for enabling/disabling typescript plugin (#4226)
- Added
typeScriptPluginOnly
option forvue.server.hybridMode
setting. - When Hybrid Mode is disabled, the Vue TypeScript Plugin will be disabled by default.
- Added
- vscode: support for
vue.format.wrapAttributes
setting (#4212) - vscode: add
vue.codeActions.askNewComponentName
setting (#4217)
- vscode:
Find File References
not working when hybrid mode is disabled (#4221) - language-core: type narrowing not working for inline event handlers (#4209)
- language-core:
@vue-ignore
,@vue-expect-error
not 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:
vueCompilerOptions
not working with hybrid mode (#4211) (#3959)
- Upgrade Volar from
v2.2.0-alpha.5
tov2.2.0-alpha.6
for avue-tsc
bug 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.enabled
by 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:
additionalExtensions
option 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
wrapAttributes
format settings for vue document (#3987) - vscode: remove duplicate ts version status (#4167)
- language-server:
.html
,.md
file 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.3
tov2.2.0-alpha.5
for 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.templateInterpolationDecorators
in 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-pug
in doctor - vscode: significantly reduces the status bar space occupied
- vscode: vueCompilerOptions no longer prompts for deprecated options
- component-meta:
defineSlots
allows empty params (#4093) - thanks @Evertvdw - typescript-plugin: fault tolerance for named pipe servers json file (#4075) - thanks @Simon-He95
- language-core: generate
defineModel
emits 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
tsl
linter 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
extraLiners
option for formatting (#3943) - language-service: bump
volar-service-typescript
for fix jsx formatting (#3949) - language-service: bump
@volar/typescript
for fix 2.0.5 auto-complete performance regression (#4024)
- vscode: rename
vue.inlayHints.vbindShorthand
setting tovue.inlayHints.vBindShorthand
(#3995) - thanks @l4dybird
- language-core: support
v-bind
shorthand (#3990) - thanks @so1ve - language-service: support inlay hints for
v-bind
shorthand (#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
globalTypesHolder
being specified from anode_modules
file (#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 initialization
errors - typescript-plugin:
vue-tsp-table.json
path 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.tsdk
duplicate 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.initialIndent
option, replaced with 3 new options:vue.format.template.initialIndent
vue.format.script.initialIndent
vue.format.style.initialIndent
- language-server:
ignoreTriggerCharacters
,reverseConfigFilePriority
andfullCompletionList
options are no longer supported
- Supported Component Drag and Drop Import (#3692)
- tsc: supported
vueCompilerOptions.extensions
option (#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
src
tolib
(#3913) - Replaced
typescript/lib/tsserverlibrary
imports 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
experimentalAdditionalLanguageModules
and deprecated APIs (#3907) - language-service: made service plugins independent of project context
- language-server:
volar.config.js
is 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)
- fix(language-core): remove misuse of
JSX.Element
for compatible with vue 3.4 (vuejs/core#9923)
- fix: upgrade typescript-auto-import-cache to v0.3.1 to be compatible with TS 5.3 (volarjs/typescript-auto-import-cache#3) (#3802)
- fix(component-type-helpers): correct type inference for FunctionalComponent (#3766) - thanks @pinguet62
- fix(language-core): camelize props for dynamic component (#3774) - thanks @so1ve
- refactor(component-type-helpers): vue 2 types now move to
vue-component-type-helpers/vue2
(#3404) - feat(language-core): expose
defineEmits
'sarg
andtypeArg
inparseScriptSetupRanges
(#3710) - thanks @so1ve - fix(language-core):
strictTemplates
fails to report unknown components (#3539) - fix(language-core): script syntax breaks if script options does not have trailing comma (#3755)
- fix(language-core): script syntax breaks if options are enclosed in parentheses (#3756)
- fix(language-core): allow using
as
with multiple<script>
blocks (#3733) - thanks @so1ve - fix(language-core): component type narrowing not working in template
- fix(language-core): incremental insertion incorrect if input
<script setup>
tag above<script>
tag (#3743) - thanks @so1ve - fix(language-core): don't camelize attributes for plain elements (#3750) - thanks @rchl
- fix(vscode): syntax highlighting for
.prop
shorthand (#3729) - thanks @so1ve
- fix: browser integration no longer requires node polyfill (volarjs/volar.js#70)
- fix: document continuous change merge results are incorrect in WebStorm (volarjs/volar.js#77) - thanks @browsnet
- fix:
experimentalResolveStyleCssClasses: "always"
not working (#3689) - thanks @maIIady - fix:
__VLS_Prettify
missing for dts build when useswithDefaults()
(#3691)
- fix(monaco): completion cannot insert text starting with
$
(volarjs/volar.js#69) - fix(typescript): automatic type acquisition not working since v1.10.0
- feat: added Italian integration documentation
- feat: enforce
v-bind
argument to be an object (#3666) - thanks @so1ve - fix: JSDoc comments not emitted when using type-only defineProps macro (#3645)
- fix: autocomplete for directive comments without a space (#3665) - thanks @so1ve
- fix: fix slot type when using a interpolation in template string (#3657) - thanks @so1ve
- fix: add autocomplete for v-slot parameters (#3661) - thanks @so1ve
- fix: export correct SlotsPropertyName for vue2 (#3669) - thanks @zhiyuanzmj
- fix(types): infer discriminated unions in child component props (#3672) - thanks @davidmatter
- fix: access to slots directly (#3671) - thanks @so1ve
- fix: autocomplete not working for
$event
(#3668) - thanks @so1ve - perf: remove duplicate virtual code for native tags
- chore: rename
volar
tovue
in diagnostics (#3667) - thanks @so1ve - chore: publish ts plugin to open-vsx (#3589) - thanks @brc-dd
- feat: no longer checking save time (#3650)
- fix(ts-plugin): tsserver doesnt have updated list of external files when new vue files are added (required TS 5.3) (#3555) (#3649)
- fix: false positive error when accessing local variables in defineProps parameter (#3643) (#3644) - thanks @so1ve
Upgrade required VSCode version to 1.82.0 (#3642)
- fix: extension cannot run on vscode versions lower than 1.82.0 (#3631) (#3635)
- fix: make
defineProps
work when reading a property fromdefineProps()
(#3633) - thanks @so1ve - fix: avoid reading
props
from__VLS_ctx
(#3636) - thanks @so1ve - fix: regression with
defineExpose
(#3639) - thanks @so1ve
- fix: merge default export's properties properly (#3600) - thanks @so1ve
- fix: accurate exposed type with refs in generic component (#3604) - thanks @so1ve
- fix: make emits type correct when user assigns emit function a custom name (#3624) - thanks @so1ve
- fix: performance issue with o(n^2) complexity of
directoryExists()
(volarjs/volar.js#66) - thanks @Akryum - fix: directory named "constructor" could crash (volarjs/volar.js#65) - thanks @Dmitrigar, @franz-bendezu
- fix: props type missing in JS component context (#3592)
- fix: ignore
$emit
return type for Vue 2 (#3596)
- feat:
defineEmit
now able to infer event types with more than 4 overloads (#3379) (#1855) - feat: more accurately distinguish component internal context and external context types (#3591) (#3517) - thanks @so1ve
- fix: don't import alias macros (#3576) - thanks @sxzz
- fix: make generic components' emit type compactible with Vue core types (#3569) (#3257) - thanks @so1ve
- fix: use universal
__VLS_ConstructorOverloads
when emits type is not inlined (#3585) - thanks @so1ve - fix: inherit emits props and supports generic component emit type for JSX (#3533) (#3289) (#3476) - thanks @so1ve
- perf: generate less TS virtual code for TS performance (#3581)
- fix: generate valid syntax when
noPropertyAccessFromIndexSignature
is not enabled (#3575) - thanks @so1ve
- feat: support vitepress's code snippet import (#3559) - thanks @so1ve
- fix(component-meta): fix modules interoperability with
vue-component-type-helper
- fix: avoid losing generic types with
strictTemplates: false
(#3565) - thanks @so1ve - fix: format slots with typeannotation correctly (#3573) - thanks @so1ve
- feat: slot references codeLens counting fragment default slot (#932)
- fix: correct message for
@vue-expect-error
(#3541) - thanks @so1ve - fix: avoid global macros conflicts with local variables (#3550) - thanks @so1ve
- fix: script setup comments at top breaks global macros (#3549) - thanks @so1ve
- fix(vue-tsc): prevent rebuild in incremental mode throwing error (#3556) - thanks @blake-newman
- feat: added Portuguese integration documentation (#3535)
- feat: exposed
configFileName
forcreateParsedCommandLineByJson()
function (#3456) - thanks @qmhc - feat: support nested plugins (#3530) - thanks @so1ve
- feat(vscode): add
vue.server.runtime
setting and support for Bun runtime - feat(vscode): add
vue.server.path
setting for customize server module path - fix: correctly hyphen-case props (#3424) - thanks @so1ve
- fix: generic components should respect
strictTemplates
(#3487) - thanks @so1ve - fix(vue-component-type-helpers): correctly handle generic components when using
ComponentExposed
(#3536) - thanks @so1ve
- feat: support auto-complete for directives (#2559)
- feat: support extract component for options api
- feat: re-support external component parsing (#3328)
- feat: support function expression emit event (#3445) - thanks @lvjiaxuan
- perf: reuse VueFile instances between monorepo packages (#3450)
- fix: handle node next module resolution (#3159) - thanks @kalvenschraut
- fix: generate valid code when using
__VLS_PropsChildren
(#3442) - thanks @so1ve - fix: component auto-import cannot insert import statement
- fix: extract component cannot extract interpolations
- fix: allow top-level await in script setup blocks with generics (#3441) - thanks @so1ve
- feat: add support for extract component code action (#2496) - thanks @zardoy
- feat: add support for
v-bind
toggle code action (#2524) - thanks @zardoy - feat: more dull "Saving time is too long" popup
- fix:
vue.server.petiteVue.supportHtmlFile
,vue.server.vitePress.supportMdFile
settings not working (#3238) - fix: don't check element type for directives (#3140)
- fix:
@ts-nocheck
cannot work from script setup (#3420) - thanks @so1ve - fix(ts-plugin): module resolving should be able to fallback to
.d.ts
(#3419) - fix(language-plugin-pug):
@vue-ignore
,@vue-skip
,@vue-expected-error
not working for pug template
- 🔥 feat(labs): support for TS memory usage treemap
- 🔥 perf: properly support TS DocumentRegistry to drastically reduce memory usage in monorepo projects
- feat(ts-plugin): re-support auto-import
- fix: remove invalid
volar.action.serverStats
command (#3366) - thanks @yaegassy - fix: don't remove comments when comment is in the first line (#3365) - thanks @so1ve
- fix: allow slots to have no arguments (#3376) - thanks @so1ve
- fix: camel case components is not recognized as used (#3377) - thanks @so1ve
- perf: hoist regexp if possible (#3378) - thanks @so1ve
- fix: non scoped classes resolution regression (#3381) - thanks @maIIady
- feat: don't to request reload editor when server options changed (#3393) - thanks @zardoy
- feat: don't hide output channel on server restart (#3401) - thanks @zardoy
Breaking changes
- Deprecate language server
json.customBlockSchemaUrls
option (#3398)
- feat(monaco): support for custom file system provider (volarjs/volar.js#50)
- feat: support auto-complete for template directive comments
- fix: local component type should override a global component (#1886) (#3333) - thanks @so1ve
- fix: support type narrowing for components define in script setup (#3138) (#3350) - thanks @so1ve
- fix(ts-plugin): tsserver crashes when import > 4MB .vue file (#3332)
- fix(language-server): in specific os
fileExists()
throws (#3336)
- fix: should not auto closing
<img>
tag (#3217) - fix: allow passing undefined as events (#3122) (#3217) - thanks @so1ve
- fix: fixes object literal parsing for (#3324) (#3171) - thanks @so1ve
- fix: symbol types are lost (#3300) (#3295) - thanks @so1ve
- fix(ts-plugin): suppress errors when
composite
is enabled - fix(language-server): trigger characters missing on web IDE
- perf(language-server): debounce for
isCancellationRequested()
- perf(typescript): caching
getScriptFileNames()
result
Breaking changes
- no longer parse vue files outside tsconfig
include
option to avoid TS performance concerns (#3326)
- fix(language-server): 3 consecutive directories with the same name cause infinite recursion (#3282) - thanks @FelipeAzambuja
- fix(language-server): diagnostics were not properly refreshed when creating files
- fix(monaco): unrecognized relative path file
- types: simplify
__VLS_IsAny
- thanks @so1ve - perf(ts-plugin): work without overriding language service instance to reduce half of memory usage (#3221)
1.8.0 (2023/6/17) (Release notes)
- perf: intellisense is very slow when referencing lots of external .vue files (#3264)
- fix: read directory infinite recursion on Darwin os (#3282)
- feat: support Vue 3.3
defineEmits
shorthand (#3169) (#3283) - thanks @so1ve - feat: allow trailing text for directive comments (#3215 (comment))
- feat: switch
vue.inlayHints.optionsWrapper
to disabled by default (#3147) - thanks @wenfangdu - feat(component-meta): expose component type (#3151) (#3286)
- fix: can't define variables in inline event handler (#3258) (#3280) - thanks @so1ve
- fix(vue-tsc):
--emitDeclarationOnly
not working since 1.7.9 - fix(vue-tsc):
@vue-expect-error
,@vue-ignore
not working for vue-tsc (#3284) - thanks @sapphi-red - fix: compatible functional component typecheck with TS 5.1.3 (#3255)
- feat: reintroduce
nativeTags
(#3279) - fix: compatible with TS 5.1.3 (#3274) (#3277) - thanks @so1ve
- perf(vue-tsc): addressed a performance regression since 1.5.1 by reintroducing
nativeTags
(#3148)
- fix: ignore errors for
statSync
(#3260)
- feat: upgrade framework to v1.7 (#3248)
- fix:
strictTemplates
not working for IntrinsicElement (#3214) - fix: failed to load tsconfig json schema (#3224) (#3228) - thanks @tjx666
- fix(vue-tsc):
vue-tsc
ignores type errors in.vue
files if the incremental setting is true (#2756) (#3218) - thanks @lucasavila00 - fix: properly merge
defineModel
anddefineProps
types (#3164) - fix(language-server): show component meta command not working
Breaking changes
- Simplify
JSX.IntrinsicElements
type inference for better TS performance (#3259) - Update
@vue-expected-error
to@vue-expect-error
(#3215 (comment))
- fix: directive comments not working in production builds
- feat: support for
@vue-ignore
,@vue-skip
,@vue-expected-error
directive comments (#3215) - refactor(language-service): removed
vscode-languageserver-protocol
runtime dependency - perf(monaco): much faster first time intellisense
- fix: ts project not updated when virtual ts file created / deleted
- refactor(language-service): fewer runtime dependencies
- chore: low-level API adjustment
- feat: more reliable intellisense for monaco
- fix: avoid adds ".js" extension when auto importing components (#3150)
- chore: bump vue deps to 3.3 stable (#3167) - thanks @ferferga
- fix(vue-tsc): avoid throw when composite is enabled (#2622)
- perf(language-service): avoid request name casing from language client multiple times (#3158) - thanks @kalvenschraut
- fix: avoid slot name report TS8013 in js component (#3121)
- feat: compatible with the latest Labs
- ⭐ feat: support for Volar.js Labs
- fix(language-core): add missing peer dependency
typescript
(#3145) - thanks @HunYan-io - perf: style code change should not increase ts virtual script version
- perf: avoid virtual file version always increase due to source map update
Breaking changes
- Removed the
VueLanguageServiceHost
interface
- feat(language-service): compatible with Volar.js 1.5 Scripts API, Rules API
- fix:
volar.config.js
does not load on Windows (volarjs/volar.js#36)
Breaking changes
- rename packages from
@volar/vue-*
to@vue/*
(#3134) volar.config.js
specification update (base on Volar.js v1.5)
- feat: support color pickers for inline css
- feat: support
lang="vue"
(#3105) - thanks @HunYan-io - fix: when the source type of
v-for
isany
, the item type should beany
(#3108) (#3112) - fix: avoid slots report error when
noPropertyAccessFromIndexSignature
enabled (#3106) - fix(component-type-helpers): import module causes tsc error (#3114)
- fix: empty slot name auto-complete not working
- fix: accessing an unknown slot name does not report an error
- fix: format adds spaces to
v-for
if nested template element assigns type to slot props (#2750) (#2757) - fix: parentheses auto insert not working in template
Breaking changes
- drop support for Vue 3.3 slots short definition (#3116)
- feat: expose custom blocks attrs (#3099) - thanks @HunYan-io
- fix: event "@update:" syntax causes TS error (#3100)
- fix: generic attr unexpectedly trimmed when formatting if attr value includes "<" (#3101)
- fix: required event props always shows in missing props hint
- fix: exclude null / undefined from
v-for
source type (#3102)
- fix: consume required props for events (#2468)
- fix: support infer v-for types for generic (#2758)
- fix: slot missing props don't report error
- fix: cannot assign generic component to components option of defineComponent
- fix: "TS1002: Unterminated string literal" in slots edge case (#2710)
- fix: generic component prop with default type incorrect (#2754)
- feat: support for specify vue library name by
vueCompilerOptions.lib
option (#2722) - fix: avoid
<component :is>
type checking with string literal assignment (#2725) - fix:
<slot>
reporting false positive error whenstrictTemplates
enabled (#2726) (#2723) - fix: error using custom directive:
Expected 2 arguments, but got 1.
(#2730) - fix: namespaced tag not working without script setup
- fix: component intellisense not working in template if TS version < 5.0 (#2742)
- fix: class is not assignable to generic components (#2744)
- fix: components options is not set correctly when component name is kebab-case and auto-importing (#2745)
- feat(doctor): show warning for TS 4.9 (#2190)
- feat: support inlayHints for
vueCompilerOptions.optionsWrapper
- fix: avoid props type-checking for
VNode
(#2720) - fix: revert "fix: trim modifiers for slot name"
- refactor: update extension settings from
volar.*
tovue.*
- refactor(language-server): remove
petiteVue
,vitePress
from server init optionsfor IDEs other than VSCode, use
additionalExtensions: ['html', 'md']
instead of
Breaking changes
- fix:
defineExpose
macro missing for Vue 3.3 - fix(component-meta): meta info is empty if missing
vue-component-type-helpers
dependency - fix: don't check time for codeActions when saving multiple files
- feat: support type-checking for dynamic components
- feat: support element type-checking for directives
- fix: cannot infer event type for
<Transition>
(#2700) - fix: tag / prop casing status not working
- fix: slot name accidentally included modifiers in virtual code
- fix: avoid always pop "Saving time is too long" edge case
- fix: only generate
JSX.ElementChildrenAttribute
type whenvueCompilerOptions.jsxSlots
enabled (#2714) - fix: top level await error in SFC if two script blocks are present (#2712)
- fix: cannot use generic components inside defineComponent (#2709)
- fix: intellisense not working in es module project (#2661)
- fix: cannot recognize hyphenate tag name (#2688)
- refactor: deprecate
nativeTags
option (#2685) - fix: props type-check not working for one argument functional component (#2686)
- fix:
<Suspense>
default slot reporting error (#2683) - fix: cannot infer slots type in vue2 project (#2682)
- fix: static directive arg should not recognize as expression (#2678)
- refactor: deprecate
jsxTemplates
option (#2677)
- fix: missing FunctionalComponent props are no longer reported in the template (#2676)
- feat: add
volar.nameCasing.status
setting to disable nameCasing status (#2453) - fix(vue-typescript): add missing peer dependency
typescript
(#2665) - thanks @merceyz - fix: slots references codeLens, renaming not working
- fix: pug multiline attribute values are marked as error (#2413)
- fix: incorrect extra inlay hints inside template when enabled
typescript.inlayHints.parameterNames
(#2670) - fix: failed to resolve tsdk path for "JavaScript and TypeScript Nightly" (#2663)
- revert: "fix(vue-tsc): add throw message if composite / incremental enabled" (https://github.com/vuejs/language-tools/commit/b596a60154a0f2a6345244a90868b5cc67eb9ff8)
- fix: cannot disable auto insert
.value
feature - fix: avoid slot props reporting error if component does not have
$slots
type (#2646) - fix: prefer component constructor signature instead of call signature (#2647)
- fix: avoid tsconfig reporting "Comments are not permitted" when takeover mode enabled (#2648)
- fix: generic slot props type not incorrect (#2639)
- fix: third-party library components cannot accept unknown props (#2636)
- fix: allow props less functional component (#2638)
- fix: native tags event type become never (#2640)
- fix: cannot resolve tsdk on windows (#2637)
- feat: support intellisense for directive arg expression (#2588)
- feat: asking disable codeActions if saving time is too long
- feat: file definition cross file mapping result fall back to 0:0
- fix: fixed dynamic slot arg expression virtual code (#2586) (#2617) (#2592)
- fix: add hack support for v-if + v-slot template (#625)
- fix: goto definition not working for alias path without script setup (#2600)
- fix: avoid missing prop hint for native tags (#2616)
- fix: vue-language-plugin-pug broken with yarn (#2608)
- fix: native tags reporting missing prop error (#2629)
- fix(vue-tsc): add throw message if composite / incremental enabled (#2622)
- fix: slot props are not recognized at the root component (#2554)
- fix: missing props hint incorrect for model property for vue 2 (#2635)
- fix: cannot show css hover message (#2634)
- fix: duplicate ts unused reports if noUnusedLocals is enabled (#2627)
- feat: change
vue.features.codeActions.enable
default value totrue
- feat: auto disable
vue.features.codeActions.enable
when document saving time is too long - feat: changing
vue.features.*
settings no longer requires reload vscode
Extension settings refactoring
codeActions
disabled by defaultupdateImportsOnFileMove
disable by default- missing props hint, event argument hint disabled by default
For more details, see #2620.
- feat: support document links for tsconfig when takeover mode is actived (#2467)
- fix: avoid server crash when tsconfig extends path invalid
- fix: auto import should not appending
.js
(#1763) (#2518) - fix: inhibit unknown props error when if
strictTemplates
is disabled - fix: absolute SCSS import resolving inconsistency (#2517)
- fix:
<template>
multi-line comments shift with each format (#2505)
- feat(component-meta): expose definition location information as
declarations
property - perf: fixed TS auto import performance regression since v1.13.11 (volarjs/typescript-auto-import-cache#2)
- fix(language-server): show component meta command not working
- fix:
v-for
item adds spaces if enabledinsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets
(#2571) - fix: when the takeover mode is enabled, json documents shows duplicate outline (#2573)
- feat: add
vue-component-type-helpers
package (#2590) - feat(component-meta): integrated
vue-component-type-helpers
- feat: upgrade to lerna-lite 2.0 (#2597) - thanks @ghiscoding
- feat: support prop renaming for defineModel and defineProp
- fix: template-based slots type incorrect (#2590)
- fix(vue-tsc): patch build info roots for TS 5.0 (#2580) - thanks @blake-newman
- feat: Support for Vue 3.3 experimental
defineModel()
API (#2579) - feat: Support for vue-macros
defineProp()
API (#2579) - feat: support short define for
defineSlots()
- feat: new
<script setup>
codegen implement for DX improve (#2582) (#2421) - fix: falsely reports "Virtual script not found"
- fix(vue-tsc): emit declaration throws TS4060 (#2581) - thanks @blake-newman
- feat: support goto source file definition for project references for TS 5.0 (volarjs/volar.js#24) (#1344) (#2296) (#2340) (#1815) - thanks @blake-newman
- feat: support auto imports for unused modules for TS 5.0 (volarjs/volar.js#24) (volarjs/volar.js#19) (#963) - thanks @blake-newman
- feat: support for vue 3.3
defineSlots()
API (#2568) - feat(vue-tsc): prettify script setup props, emits type in emit
- fix:
plugins
,hooks
,experimentalAdditionalLanguageModules
options ofvueCompilerOptions
not working (#2558) - thanks @rchl - fix(vue-tsc): fixed typescript 5 support (#2555) - thanks @blake-newman
- fix: incorrectly incremented end offset when deleting the last text in an directive expression
- fix:
"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": true
caused formatting issues with v-bind expressions (#2507) - fix:
normalizeComponentAutoImportName
not working for import statement completion (#2511) - fix: ignore
null
type for dynamic argument (#2514) - fix:
vue-twoslash-queries
plugin not working - fix: redo
JSX.ElementChildrenAttribute
implement (#2472) - fix(component-meta): support for functional component (#1992)
- fix: avoid crash when
chdir()
(#2480) - fix: expand selection ranges incorrect (#2477)
- fix: directive semanticTokens display range incorrect (#2454)
- fix:
<textarea>
formatting indent incorrect - perf(vue-tsc): streamline virtual code to improve emit performance
- fix: missing props type check stop working
- feat: support
normalizeComponentImportName
foradditionalExtensions
(#2481) - feat: support generic component without
jsxTemplates
- feat: support slot references for anonymous default slot (#2547)
- feat: recognize slots property with
JSX.ElementChildrenAttribute
(#2472) - feat: support slot required checking when enabled
strictTemplates
(#1820) - fix: handle edge tag name casing
<xxx--yyy>
(#2463) - fix: incremental update causes multi-line style node damage (#2519)
- fix: formatting break multi-line attribute value indent (#2519)
- fix: formatting break
<pre>
tag contents indent (#2520) - fix: typescript
labelDetails
in completions not processed (volarjs/services#31) - thanks @zardoy
Breaking changes
- deprecated
volar.vueserver.textDocumentSync
setting - deprecated
narrowingTypesInInlineHandlers
forvueCompilerOptions
and always enabled now
- feat: RFC 436 leaves experimental (#2545)
- feat: auto resolve
vueCompilerOptions.target
by default - feat: auto append
/** @jsxImportSource vue */
whenjsxTemplates
enabled and target >= 3.3 for avoid #592 - feat(doctor): remove target check for
vueCompilerOptions
- fix: some environments throws
Failed to resolve tsconfig path
(#2471 (comment)) - fix: diagnostics break when changing code (yaegassy/coc-volar#262 (comment))
- fix: all server capabilities loss in IDEs other than VSCode (#2526)
- feat: disable
missingRequiredProps
,eventArgumentInInlineHandlers
by default - fix:
vueCompilerOptions
cannot extends from non-relative paths (#2345) - thanks @dschmidt - fix(vue-component-meta):
exposed
missing when use TS 5.0 - perf(vue-component-meta):
props
,events
,slots
,exposed
lazy calculation - perf: provide change range of virtual file snapshot for typescript program
- feat(language-server): declare workspaceFolders support in server capabilities for IDEs (volarjs/volar.js#18) - thanks @the-mikedavis
- feat(vue-tsc): supports incremental emit (volarjs/volar.js#17) - thanks @blake-newman
- feat: allow code actions to run rename command after applying (#2498) (volarjs/services#29) - thanks @zardoy
- perf(vue-component-meta): faster initialization (#2506) - thanks @stafyniaksacha
- perf: search tsconfig on demand (volarjs/volar.js#16)
- feat: support for korean html data
- feat(doctor): remove
vue-tsc
version check - feat(doctor): rename setting from
volar.doctor.statusBarItem
tovolar.doctor.status
- feat(doctor): check VSCode settings
emmet.includeLanguages
,files.associations
(#2487) - feat(doctor): check plugins version for
volar.config.js
- feat: add description link for
$event =>
hint (#2445) - feat(language-server): support for
ServerMode.PartialSemantic
- fix:
Show Component Meta
command not working - fix: name casing status do not update with changed settings (#2460)
- fix: component auto import not working with kebab case (#2458)
- fix: missing props hints do not recognize
@xxx
(#4568) - fix: code action document version incorrect (yaegassy/coc-volar#254)
Breaking changes
- Remove built-in web intellisense support and recommended TypeScript IntelliSense for Web instead of (#2475)
- Upgrade required version of
@volar-plugins/*
to>= 2.0.0
- After upgrade, you need to access
default
property withrequire('@volar-plugins/xxx').default
involar.config.js
- After upgrade, you need to access
- Upgrade build target from ES2016 to ES2021 (#2489)
- feat: compatible with upstream monaco integration (volarjs/volar.js#10)
- feat: support array extends for tsconfig (#2344)
- feat: make cursor inside quotes when insert missing required props edit (#2414)
- feat: support mixin child nodes for pug (#2447)
- fix: ignore native tags for missing required props hint
- fix: ignore methods for missing required props hint (#2443)
- fix: SFC outline not show child nodes (#2446)
- fix: document symbols request crash with arrow function declaration (#2438)
- fix: document symbols child node range incorrect
- fix: SFC document symbols tree incorrect
- fix: template comments were trimmed with formatting in production mode (#2435)
- fix: inaccurate outline view of script content
- fix: takeover mode causes IDE to get stuck in large
.ts
files due to a long list in the outline view
- feat: prettify type for css module
$style
- fix: only generate component with function type when use
generic
attribute - fix: document links feature broken (#2426)
- fix: missing props inlay hints not working for namespace components
- fix: component tags type-check not working
- fix: pug template reporting TS2339 when
strictTemplates
enabled (#2431) - fix: pug tag completion not working at empty lines
- feat: support for script src path intellisense (#2331)
- feat: support name casing setting for component auto import (#2362)
- feat: add
volar.vueserver.fullCompletionList
setting (#2422) - perf: filter completion items in language server for better performance (#2306)
- fix:
strictTemplates
did not check for unknown components (#2291) - fix: duplicate document links in the template
- fix: completion not working for namespace components (#2382)
- fix: html comments and js template strings format indent incorrect (#2420)
- fix: do not correspond
v-model
tochecked
prop for checkbox and radio input tags (#2415)
- feat: visualize event argument in inline handlers
- feat: add description for model modifiers (#2405)
- fix: remove deprecated preview commands (#2402)
- fix: missing required props hint not working with v-model (#2407)
- fix: cannot collapse code in .js / .ts files with takeover mode (#2408)
- fix: symbols view stopped working for .js / .ts files with takeover mode (#2404)
- fix: cannot rename html tags (#2410)
- fix: cannot display rename fail message
- fix: format on type cannot working for code blocks that enabled
volar.format.initialIndent
(#2401) - fix: vue-tsc crashes in watch mode when file changed (#2403)
- fix: prop type definition inaccurate for
v-model
directive on native input (#2399)
- fix: format adding unnecessary newline to CRLF document (#2385)
- fix: incidentally inserting indents when inserting new lines when if
editor.formatOnType
(#2394) - fix: template formatting last line indent incorrect (#2393)
- fix: template start tag got deleting if first line is comment (#2390)
- fix: takeover mode status incorrect in display (#2389)
- fix: diff window's document was unexpectedly diagnosed (#2391)
- fix: emmet completions appear inside open tag (#1329)
- fix:
opencc
is depended on by language server (#2388)
- feat: support
initialIndent
forpug
andsass
- feat: add description for built-in directives, attributes, component, and elements
- feat: support localization for event modifiers and props modifiers
- feat: missing required props inlay hints (needs enabled
volar.inlayHints.missingRequiredProps
) - feat: show
(takeover)
instead of(vue)
in status bar for takeover mode (#2365) - feat: more reliable formatting edits combine
- fix(doctor): update source code link (#2307)
- fix(ts-plugin): tsserver multiple initializations lead to infinite loop (microsoft/vscode#171591)
- fix: syntactic features not working for untitled vue document
- fix: spaces removed from ternary operator inside
{{ }}
(#2305) - fix:
source.addMissingImports
accidentally made imports for properties used the template (#2304) - fix: code action auto import should not append to the same line with the script tag (#916)
- fix: multi-line interpolation last line indent incorrect
- fix: declaring empty emits like
defineEmits<{}>()
would fail the type-checking process (#2370) - fix: ignore
name
prop / attr for slot (#2308)
Breaking changes
- Removed pug convert tool
- Removed script setup convert tool
- Unsupported tracing for vue-tsc (#2378)
- Extract Vite, Nuxt and component preview features to Vue and Nuxt Preview
- feat: support
vite-plugin-vue-component-preview
for nuxt 3.2 - feat: add
vue-preview.root
setting for Nuxt component preview - fix: prevent random creation of multiple preview terminals
- fix: support nuxt preview without vite serving allow list (#2287)
- feat: support
- feat: add
vueCompilerOptions.macros
setting for vue-macros plugins - feat(framework): expose
FileCapabilities.full
,FileRangeCapabilities.full
,MirrorBehaviorCapabilities.full
- feat: renamed
normalizeComponentAutoImportName
setting tonormalizeComponentImportName
- feat: support normalize component name for import statement completion (#2286)
- feat: normalize
Index
to folder name whennormalizeComponentImportName
enabled (#2071 (comment)) - feat: support update imports on multiple files move
- fix(ts-plugin): fixed
Projects must list all files or use an 'include' pattern
error (#2271) - fix: language client sending
parseSfc
requests when not a vue document changed - fix: typescript actions not working for
codeActionsOnSave
setting (#2188) - fix: fixed
c is not iterable
error edge case (#2282) - fix: cannot select workspace tsdk on status bar with takeover mode
- fix(plugin-api): cannot catch errors for
getEmbeddedFileNames()
,resolveEmbeddedFile()
- fix(component-meta): cannot detection of slots in script-less SFC (#2113)
- perf(component-meta): resolve schema on demand (#2288)
- fix: document folding ranges not working in .ts
- fix: cannot jump to .vue definition from .ts with takeover mode
- fix: cannot detect
@volar/vue-language-plugin-pug
installed (#2272) - fix: ignore incremental update for v-for expression (#2266)
- fix: auto insert spaces for
{{}}
not working - fix: completion in template inserts stray leading dot (#2155)
- fix: if source document EOL is
\r\n
, virtual document mapping decorations range incorrect
- feat: support browser navigation for embedded preview
- feat: released pug extension (#2274)
- feat: add
volar.takeOverMode.extension
setting for choice extension that takeover *.ts language support - fix(typescript-vue-plugin): can't always get latest status of .vue files (#2271)
- fix: multi-line template interpolation formatting indentation incorrect
- refactor(framework): simplify
LanguageServerPlugin
api and dependency injection connection (#2273) - refactor(framework): combine
createLanguageService
andcreateDocumentService
- feat: add
experimentalAdditionalLanguageModules
option forvueCompilerOptions
(#2267) - fix: TS
typescript/javascript.preferences.autoImportFileExcludePatterns
setting not working - fix: formatting not working for extra vue file extensions (#2263)
- fix(doctor): accidentally report
@vue/compiler-dom
warning (#2262) - fix(vue-component-meta):
required
property incorrect (#2256) - fix(preview): cannot start preview if project never start run vite server (#2223)
- fix: references codeLens not working
- feat: check deprecated properties for
vueCompilerOptions
in tsconfig - fix: auto add spaces for
{{}}
not working if template block not at the top - fix: remove duplicate file watchers for .vue files
- fix: auto complete randomly report
[TS Error] { }
and failed (#2190) - fix: cross-file renaming cannot be performed consecutively
- fix: should not report unknown tag error without
strictTemplates
enabled (#2255)
- feat: support syntax highlighting for
lang="json5"
(#2244) - feat: support for generating virtual file from multiple sources (#2253)
- feat: display mapping data on hover for virtual document
- feat: re-support component semantic token (#2252)
- fix(vue-tsc): cannot resolve hook path from extends options
- fix: fixed workspace configs caching not working edge case (#2062)
- fix: cannot find volar.config.js for sub folder tsconfig project
- fix: emmet abbreviation suggestion keeps disappearing every third letter (#2240)
- fix:
{{ }}
colorizedBracketPairs not working (#1759) - fix: fixed volar-base language servers executePluginCommand duplicate registration error
- fix: avoid throw on un-exist workspace folder (#2039)
- fix: ignore class, style attrs when
v-bind
exist (#2166) - fix: functional component type check not working when return type includes
props
property (#2206) - fix: v-slot error when
noPropertyAccessFromIndexSignature
is enabled (#2236) - fix:
skipTemplateCodegen
should ignore template slots emit (#2237) - fix: recursive closing of html tag edge cases (#2238) (#2247)
- fix: double quotes not allowed in attribute value (#2250)
- perf: embedded files on demand calculation not working
- feat(component-meta): make
schema.ignore
accept functions (#2232) - feat: add
volar.icon.splitEditors
setting (#2163) - feat: support twoslash queries in .ts when using takeover mode
- fix: fixed typescript-vue-plugin performance regression (#2228)
- fix: deleting space for
{{ |}}
become{{ | }}
(#2222) - fix: dynamic slot name type
<slot :name="(name as 'a' | 'b')" />
not working (#2233) - fix: typed template slots missing when template only exist dynamic slots (#2233)
- fix: fixed template
Type 'void' has no call signatures
errors (#2225) - fix(vue-tsc): shim
vue-tsc/out/proxy.js
for vite-plugin-checker (fi3ework/vite-plugin-checker#193) - perf: rewrite typescript-vue-plugin for much better performance and fixed path resolve edge case (#2137)
- feat: add angular language server example (#2215)
- feat(vue-tsc): support for hook api (#2217)
- feat: add
vue-tsc-eslint-hook
module to support use eslint in vue-tsc (#2220) - feat: add setting
volar.vueserver.maxFileSize
(#2186) - feat: add setting
volar.doctor.checkVueTsc
and disable by default (#2186) - feat: add setting
volar.vueserver.configFilePath
(#2078) - feat: auto add space between double curly brackets (#2088)
- feat: support formatting for style
v-bind
(#2105) - fix: virtual code mapping ignored offset 0 (#2052)
- fix: auto complete ref value with '.value' not working (#2203)
- fix: template AST broken by slot name incremental update (#2207)
- fix: preview not working for Vite v4 (#2198)
- feat(web-ide): show loading file at status bar
- feat(web-ide): support node_modules types via CDN
- feat(web-ide): support locale typescript diagnostic messages
- fix(web-ide): cannot use default typescript lib types
- fix(web-ide): cannot found match tsconfig
- fix:
volar.config.js
plugins dirty cache between different tsconfig projects
- feat: added
@volar/vscode-language-client
package (#2181) - fix: document content messed up randomly (#1807)
- fix: "Show Virtual Files" mapping background color unclear with light theme (#2147) (#2170)
- fix: props type checking not working for Element Plus components (#2176) (#2180)
- fix: attribute values being wrapped in parentheses while typing (#2182)
- fix: formatting crashes (#2077)
- fix: cannot emit component type with
DefineComponent
when template has slots (#2161)
- fix(vue-tsc): dts emit do not generated
DefineComponent
type (#2161) - fix: global components types loss in vue 2 projects (#2157)
- fix: Vite / Nuxt app preview crash when template includes
<html>
tag
- feat: add
volar.vueserver.json.customBlockSchemaUrls
setting to support preset json schema urls for custom blocks (#2079) - feat: add
volar.vueserver.reverseConfigFilePriority
setting to support customize tsconfig priority (#1815) - feat: add
volar.vueserver.disableFileWatcher
setting for better performance (#2027) - feat(vue-tsc): support for TypeScript 5.0 (#2095)
- feat: auto insert parentheses for
instanceof
expressions (#2099) - feat: more accurate HTML attributes auto-complete
- feat: add
nativeTags
instead ofexperimentalRuntimeMode
to vueCompilerOptions for uni-app supports (#2065) - feat: remove split editors icon and use command instead of
- fix: goto definition not working with nvim-lspconfig (#1916 (comment))
- fix(preview): more accurate script judgment (#2135)
- fix: local components types should cover global components types (#1886)
- fix: auto insert parentheses for AsExpressions not working
- fix: template code mapping confusion when undo with invalid template code (#2151)
- fix: output Server Stats through LSP API (#2050)
- fix: vite app preview not working if project path includes spaces (johnsoncodehk/vite-plugin-vue-component-preview#7)
- fix: avoid component preview create multiple terminals (#2128)
- fix: avoid folding when join split editors (#1887)
- fix: split editors command crash with empty document (#2072)
- fix: avoid escape
"
(#2091) - fix: script setup first variable jsdoc missing (#1327 (comment))
- fix: document symbols of SFC blocks range incorrect (#2118)
- fix:
strictTemplates
option works only bound props (#2136) - fix: props required warning missing when
jsxTemplates
option enabled (#2139) - fix: cannot infer events parameter type in recursive component (#2140)
- perf: faster semantic tokens parsing (#2053) (#2056)
- perf: avoid create file watchers in syntactic server
- perf: cache workspace configuration in language servers (#2062)
- feat(vue-tsc): add error message for
noEmitOnError
(#2053) - feat: add support for custom file extensions (#1931)
- feat: add support for
typescript/javascript.suggest.completeFunctionCalls
(#956) - feat: add support for JSX auto closing tags and tags commenting (#1494)
- feat: add support for auto import component from .ts sources (#1643)
- feat: add
Server Stats
command for debugging loading files - feat: add
volar.completion.normalizeComponentAutoImportName
setting to support removeVue
ending for component auto import (#82) - feat: add
volar.vueserver.diagnosticModel
setting to support pull model for diagnostic - feat: add
experimentalUseElementAccessInTemplate
setting in vueCompilerOptions for class component supports (#997) - feat: migrated to standard token types for support semantic tokens IDE other than VSCode
- feat: register file watchers in language server for support IDE other than VSCode (#2037)
- perf: load scripts on demand on inferred project
- fix(doctor): update valid
@types/node
version and clarity words (#2043) - fix: avoid language server crash by invalid tsconfig references path (#1957)
- fix:
LanguageServicePlugin
error don'ts reporting - fix: SCSS At-Rule autocomplete not working
- fix: intellisense not working for files path start with
.
(#1147) - fix: avoid reporting partial diagnostic when failed to update cache range
- fix: formatting not working for template interpolations (#2026)
- fix: file watchers not working (#2028)
- fix: document version of code action incorrect (#2025)
- fix: don't filter
onXxx
for props autocomplete (#2034) - fix: import statements completion not working (#1983 (comment))
- fix: server throwing errors due to component auto import completion canceled (#1983)
- fix: expand selection does not work correctly in
<template>
(#1465) - fix: component tags messes with duplicate name template properties (#2030)
- fix: improve invalid content trimming in .md files for VitePress
- fix: avoid language server throwing when changing built-in TS plugin activation
- feat: support for twoslash queries (volarjs/services#9)
- feat: support
generic
attribute auto-complete - feat: add
volar.vueserver.noProjectReferences
setting for support jump to source files from reference projects (#1344) - fix: SFC parse failed if script content including
<script>
(#1982) - fix: avoid report type error for invalid component without enable
jsxTemplates
(#2007) - fix: intrinsic tag highlight should only including open tag and close tag (#2009)
- fix: component type should take capitalize property takes precedence over camelize property from context (#2010)
- fix: references codeLens should not including sources on display (#1989 (comment))
- feat(vue-language-core): support custom v-model prefix (#2004)
- feat: allow passing attributes array for
experimentalModelPropName
ignore setting (#1821) - fix:
@volar/vue-language-plugin-pug
cause to doctor warns in Vue 2.7 project (#2002) - fix: mitigate virtual file mapping highlights dislocation
- fix: tag hover not working when enabled
jsxTemplates
- fix: avoid convert invalid JSX type to any when enabled
jsxTemplates
- fix: component JSX type invalid when enabled
jsxTemplates
but template has no any slots - perf: try skip convert attribute value to unicode
- fix: component ast broken when use script setup with
export default
(#1996) - fix:
experimentalModelPropName
link invalid (#1999) - fix:
@volar/pug-language-service
crash (#2000)
- feat(doctor): report warning for
@types/node
version>= 18.8.1
(#1985) - fix:
@volar-examples/svelte-tsc
,@volar-examples/svelte-typescript
released empty dist - fix: component syntax minor defect when enabled
experimentalRfc436
- fix: force use VSCode display language in language server (#1959)
- fix: don't hoisting defineProps type arg when disabled
experimentalRfc436
(#1994)
- feat: Support generic typed template slots for RFC 436 (#1987)
- feat: add
resolveTemplateCompilerOptions
API forVueLanguagePlugin
- feat: support intellisense for
generic
attribute (#1967) - feat: add
Show Component Meta
command for inspectvue-component-meta
result - feat: add
vueCompilerOptions.experimentalModelPropName
for customizev-model
binding prop for vue 2 component (#1969) - fix:
TypeScript Vue Plugin (Volar)
stop working - fix: change
vueCompilerOptions.dataAttributes
default value from["data-*"]
to[]
(#1965) - fix: component props order should be on the top (#1972)
- fix:
@volar/vue-language-plugin-pug
crash due to missing depend - fix: component tag highlight not working for pug template (#1977)
- fix: references codeLens number incorrect (#1989)
Breaking changes
- Removed
experimentalTemplateCompilerOptions
,experimentalTemplateCompilerOptionsRequirePath
fromvueCompilerOptions
(#1991)
- feat: support
as
expressions in export assignment for script setup (#1882) - feat: support RFC 436 with new option
vueCompilerOptions.experimentalRfc436
(#1964) (vuejs/rfcs#436)
- fix:
TypeScript Vue Plugin (Volar)
breaks VSCode tsserver (#1956) - fix: pug intellisense not working
- fix: semantic tokens confused git diff window (#1946 (comment))
- fix(doctor): cannot resolve
vueCompilerOptions
from extends tsconfig - fix(doctor): cannot resolve vue version from sub folder (#1961) (#1962)
- fix: scoped class name no longer displays underline (#1960)
- feat(doctor): added more postcss syntax highliters (#1945)
- fix(doctor):
@vue/compiler-dom
missing message incorrect (#1953) - fix: name casing tool typo (#1941)
- fix: takeover mode document link incorrect (#1944)
- fix: code color disordered if .ts script do not include to tsconfig (#1946)
- fix: cannot start language server if worksapce tsdk path invalid (#1942)
- fix: "Show Virtual Files" command not working for .md / .html
- fix: tag autocomplete add duplicated import if the tag not use in template (#1952)
- fix: template AST broken when input space after tag name
- fix: don't use native event type for component (#1948) (#1951)
- fix: command + hover
@click
cannot show selection range
[Download]
- fix: "Reload Project" command do not update diagnostics
- feat: use svelte2tsx for svelte language server example (#1940)
[Download]
- fix: html / css custom data not working (#707 (comment))
- fix: should not show tsconfig / name casing on status bar for md / html by default
- fix: cannot watch *.ts changes without takeover mode (#1880 (comment))
[Download]
- feat: support .cjs, .mjs, .cts, .mts on takeover mode (#1928)
- fix: multiple style attributes report false positive error (#1929)
[Download]
- feat(vue-component-meta): add file update apis for support HMR (#1889)
- feat: add
dataAttributes
,htmlAttributes
options for vueCompilerOptions (#1871) - feat: support for
typescript.autoImportFileExcludePatterns
Breaking changes
- Some
vueCompilerOptions
perperties leave experimentalexperimentalComponentOptionsWrapper
->optionsWrapper
experimentalAllowTypeNarrowingInInlineHandlers
->narrowingTypesInInlineHandlers
experimentalDowngradePropsAndEmitsToSetupReturnOnScriptSetup
->bypassDefineComponentToExposePropsAndEmitsForJsScriptSetupComponents
[Download]
- fix: vue-language-server not release
[Download]
- feat: show plugin path in output of
vueCompilerOptions.plugins
if it failed to load - fix: document symbols not working in IDE other than VSCode (#1925)
- fix: hover info cannot show after save document (#1880 (comment))
- fix: cannot show "No tsconfig"
[Download]
- feat: support document doctor for common problems checking (#1254)
- feat: add "Show Virtual Files" command for debug virtual code and mapping
[Download]
- feat: support
ParseSFCRequest
LSP request for parse SFC to avoid language client depend on@vue/compiler-sfc
- feat: add
VueServerInitializationOptions#cancellationPipeName
option for language client cancellation token supports - feat: remove second semantic language server and
volar.vueserver.useSecondServer
setting - perf: cancel asynchronous request via named pipes (#1916 (comment))
- chore: change extension icon to Vue logo
- chore: optimize bunding (2.2MB -> 975KB)
[Download]
Breaking changes
- Update VueLanguagePlugin API to v1.0 (Example)
- Update language server
initializationOptions
interface (#1916)
[Download]
- feat: support autocomplete for
v-model:xxx
- feat: simplify status bar
- feat: support prop name case conversion in the status bar
- feat: remove "auto", "both" and add "auto-kebab", "auto-pascal" for
volar.completion.preferredTagNameCase
- fix: cannot resolve
compilerOptions.types
from a higher level directory in a workspace sub directory (#1764) - fix: should not trigger autocomplete lang attribute in templates (#1836)
- fix: cannot trigger autocomplete end with
v-xxx
(#1905) - fix: auto insert parentheses remove
$x
from$x as y
- fix: auto insert parentheses not working on props
[Download]
- perf: reduce input files to improve performance for large project
- fix: template incremental update not working
[Download]
- fix: language server crash on diagnosis
<style lang="postcss">
(#1902) - fix: template tags selection range incorrect with definition
[Download]
- fix: iterating
Symbol.Iterator
is not correctly inferred inv-for
(#1892) - fix: false positive error on
<CustomComponent @click.stop />
(#464) - perf: improve for large template memory usage
- perf: improve for monorepo project memory usage
Breaking changes
- vueCompilerOptions property
experimentalDisableTemplateSupport
renamed toskipTemplateCodegen
[Download]
- fix: don't ignore
@vue/compiler-dom
compile errors for vue2 templates - fix: cannot start language server with
@volar/vue-language-server
since v1.0.0-alpha.0 (#1888)
[Download]
- feat: add less support for initial indent (#1883)
- feat: use
vue-template-compiler
instead of@vue/compiler-dom
to collect template errors for target < 3 - fix: moving components doesn't trigger import updates (#1884)
[Download]
- fix:
vue-tsc
depends version resolve failed (#1881)
[Download]
- feat: framework agnostic language server (#1859)
- feat: improve
.value
auto insert invalid location filting - feat: add
vueCompilerOptions.jsxTemplates
for more fault tolerant template (#1865) - feat: add
volar.vueserver.petiteVue.processHtmlFile
,volar.vueserver.vitePress.processMdFile
to config language support for petite-vue, VitePress (#1878) - fix: template context types broken with
"moduleResolution": "nodenext"
(#1862) - fix: language server throw when use
lang="js"
without"allowJs": true
- fix: auto
.value
failed if position immediately after another property.value
access expression (#1853) - fix: language onEnterRules, increaseIndentPattern incorrect in
<script>
,<style>
(#1847) - fix: source-map vue version inconsistent (#1874)
- fix: fix pug tag offset (#1783)
Breaking changes
- Remove Alpine extension (#1858)
- No built-in support for pug template anymore, if you have use pug with vue-tsc before, please follow below changes:
package.json
{
"devDependencies": {
- "@volar/pug-language-service": "latest"
+ "@volar/vue-language-plugin-pug": "latest"
}
}
tsconfig.json
{
"vueCompilerOptions": {
"plugins": ["@volar/vue-language-plugin-pug"]
}
}
- fix: cycle reactive reference lead to memory leak
- perf: fix incremental template compile not working
- perf: cache path resolve result on
getScriptVersion
- perf: faster code mapping range transform
- feat: support for typescript class/object literal method completions (#1835)
- fix: language server crash if client did not support
onDidChangeWorkspaceFolders
(#1834) - fix: "Format Selection" embedded range incorrect with initialIndentBracket
- fix: formatting break document with
editor.formatOnPaste
enabled (#1840) (#1841) (#1842) (#1843) (#1835)
- feat: improve "Format Selection" for html content
- feat: uniquely scope attribute shorthands (#1812)
- feat: add server name, version infos to LSP initialize response
- fix: "Format Selection" should not format whole language block (#1833)
- fix: formatting break document content randomly (#1827) (#1832)
- fix: pug syntax highlighting confuses element id with interpolation (#1826)
- fix: don't cache IDE settings if IDE do not support config change notification
- feat: improve vue document formatting
- fix: script format loss indent (#1823)
- feat: add
volar.format.initialIndent
option for format<style>
,<script>
with initial indent (#1806) - perf: cache
ts.ScriptSnapshot.fromString
result on formatting - fix: volar.config.js not working since v0.40.7 (#1819)
- fix: should not incremental update if SFC parse failed (#1807 (comment))
- feat: support multiple workspaces for document features
- feat: add
initializationOptions.completion.ignoreTriggerCharacters
for LSP-Volar (sublimelsp/LSP-volar#114) - feat: add
vueCompilerOptions.experimentalComponentOptionsWrapper
option for custom component options warpper (#1517) - fix: add missing surrounding pair "`" (#1659)
- fix: formatting edit range incorrect edge case (#1814)
- fix: typescript onType format do not respect
typescript.format.enable
- fix: document features stop working for script block (#1813)
- fix: pug formatter extra spaces in
{{ }}
(#1784) - fix: template incremental parser broken when typing slot name
Breaking changes
- vueCompilerOptions properties
experimentalImplicitWrapComponentOptionsWithDefineComponent
,experimentalImplicitWrapComponentOptionsWithVue2Extend
replaced byexperimentalComponentOptionsWrapper
.
- feat: support language features for Web IDE (#612)
- feat: update vite problemMatcher (#1801)
- feat: add
volar.vueserver.textDocumentSync
option to disable incremental update (#1807) - fix:
v-for
,v-if
textmate scopes incorrect (#1810)
- feat: suppor add or switch workspaces without restart server (#1574)
- fix: sfc offset incremental update broken when input at block start
- fix: document incremental update break document content on Sublime LSP (sublimelsp/LSP-volar#120)
- fix: unexpected prop types behavior with
compilerOptions.exactOptionalPropertyTypes
(vuejs/core#6532) - fix: false positive error on
<input typeof="radio" value="...">
(#1775) - fix: false positive style attribute inconsistent string type error (#1781)
- fix: language server broken with
outDir
+rootDir
+composite/incremental
tsconfig options (#1782) - fix: json format should not trim first / end new line
- fix: interpolation format adding redundant spaces (#1784)
- feat: respect VSCode
*.format.enable
settings - fix: template should not compile if content no change
- fix: component preview not working on windows (#1737)
- perf: incremental update SFC blocks without full parse SFC and mitigate memory leak
- perf: incremental update html template interpolation without recompile template
- perf: cache
ts.createSourceFile
for tsx code gen - fix(vue-component-meta): cannot create checker with TS 4.8.2
- fix: document features not working on Web IDE (#1479)
- fix: avoid auto complete triggers too aggressive in Sublime (sublimelsp/LSP-volar#114)
- feat(vue-component-meta): add
createComponentMetaCheckerByJsonConfig
API to support create checker without tsconfig - feat: move
highlight dom elements ☑
codeLens to status bar (#1535) - feat: incremental update diagnostics cache range and avoid flicker (#1718)
- perf: incremental update TS script snapshot (#1718)
- perf: faster source map code mapping
- fix: pug template tag mapping range incorrect (#1723)
- fix: vite plugin import path incorrect on windows (#1772)
- fix: false positive error on style attr when enabled
compilerOptions.exactOptionalPropertyTypes
(#1560) - fix: .html intellisense of petite-vue not working
- fix: .html intellisense of alpie not working
- fix: intellisense not working for node_modules files with takeover mode on windows (#1641)
- fix: avoid vue-tsc type check .html, .md files (#1661)
- fix:
compilerOptions.types
resolve path incorrect on multiple workspaces (#1679) - fix: cannot count script setup variable usage in template if disalbe jsx (#1729)
- fix: cannot resolve indirect circular reference components types (#1708)
- fix: cannot recognize namespace component (#1726)
- fix: template components types break by regular SFC
components
option (#1731) - fix: indentation behavior incorrect (#1762)
- fix: TS1308 'async' error missing when use script setup (#1753)
- fix: component context types missing in template if no script block (#1688)
- fix: organize imports added invalid code (#1692)
- fix: v-else template interpolation missing in virtual code (#1694)
- fix: template interpolation formatting broken (#1697)
- fix: inline css intellisense not working
- feat: support document highlights cross
<script>
,<template>
(#462) - feat: support reference types from script setup in template (#891)
- feat: support auto import in template (#823)
- feat: support plugin api (#185) (#1687)
- fix: template scope variables completion missing (#1284)
- fix: prefer
defineComponent
instead ofVue.extend
to wrap component options by default (#1584) - fix: bracket pair colorization in VSCode v1.70 (#1677)
- feat(vue-component-meta): add option to expose raw type (#1674)
- fix(vue-component-meta): recursive schema parsing (#1660)
- fix(vue-component-meta): parse defineProps in script setup with option (#1665)
- fix: SFC syntax broken in vscode v1.70.0 (#1566) (#1675)
- fix: vite app preview not working (#1668)
- fix: diagnosis is slow on windows after v0.39.2 (#1663)
- fix:
compilerOptions.types
not working since v0.39.2 (#1650) - fix: avoid auto-import path append
.js
(#1667) - fix: avoid variables defined after export default report TS_2454
- perf: cache semver result on auto-complete
- feat: support ESM project (#1543)
- fix: "Volar: Reload Project" command cannot detect node_modules change
- fix: webview buttons show to unrelated extensions (#1611)
- feat(vue-component-meta): component schema improves (#1656)
- feat(vue-component-meta): support options api props default (#1649)
- feat: add "Volar: Reload Project" command (#1605)
- fix: vue-tsc watch not working (#1647)
- feat: vue-component-meta (#1627)
- feat: support for "JavaScript and TypeScript Nightly" (#1332)
- fix: tsx, jsx syntax break by vue directives syntax inject (#1617)
- fix: any type components missing in template when use script setup (#1608)
- fix: ignore X_V_IF_SAME_KEY error in vue 2 (#1638)
- perf: fix
fileExists
is always calculate for .ts on each time update (https://github.com/vuejs/language-tools/commit/07f3bd55b6bdf3875a60796f7c9eb9a838eed463) - perf: cache
fileExists
,directoryExists
result in language server (https://github.com/vuejs/language-tools/commit/34a4435284311c88248a44222f49c017a6b408a9)
- fix: typescript-vue-plugin break TS server (#1624)
- fix: make
takeOverMode.enabled: true
behavior same withtakeOverMode.enabled: 'auto'
- feat: updated vite problemMatcher (#1606)
- feat: support Vite app preview for Vite v3 (#1616)
- feat: support organizeImports in vue-typescript for prettier-plugin-organize-imports (#1480) (#1577)
- feat: avoid takeover enabled with built-in TS extension do not disabled (#1622)
- feat: expose vue-tsconfig.schema.json from
@volar/vue-language-core
- fix: fix workspaceTrust description (#1610)
Breaking changes
@volar/vue-typescript
,@volar/vue-language-service
apis refactored
- fix: path resolution incorrect in multi root workspaces on windows (#1585)
- fix: goto definition not working for import path on windows (#1591) (#1593)
- fix: update imports on file move not working (#1599)
- fix: wrong check for whether jsx option is set (#1595)
- fix: renaming .vue files breaks resolving import paths (#1125)
- feat: support for TS 4.8 (#1507)
- feat: support
--incremental
flag for vue-tsc (#787) - fix: vue-tsc watch memory leak (#1106)
- fix: re-fix template directives syntax highlight incorrect edge cases (#1423)
- feat: add
volar.updateImportsOnFileMove.enabled
option to disable file move refactoring (#1181) - feat: add
volar.diagnostics.delay
option for reduce CPU usage (#1295) - feat: add
vueCompilerOptions.experimentalImplicitWrapComponentOptionsWithVue2Extend
to support wrap component options byVue.extend
(#1337) - feat: support takeover mode for .cjs and .mjs (#1578)
- fix: template syntax highlight broken if quotes missing (#761)
- fix: self closing tag syntax highlight incorrect (#948)
- fix: re-fix vue file import path auto-complete not working on windows (#1304)
- fix: ts plugin stuck on empty project (#1146)
- fix: tsconfig picking inaccurate (#1193)
- fix: cannot resolve modules from extend tsconfg
types
option (#1262) - fix: file move refactoring unpredictable (#1273)
- fix: avoid duplicate class attribute in pug (#1525)
- fix: intellisense incorrect in new file (#1548)
- fix:
insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis
break v-for format (#1398) - fix: document features not working in *.ts on takeover mode (#1563)
- fix: template syntax highlight broken (#1553, #1567, #1569, #1564, #1491)
- fix: file path resolve incorrect on windows (#1554, #1555, #1556, #1557, #1558, #1559)
- feat: add
vueCompilerOptions.strictTemplates
(#1418) - fix: don't auto close ``` (#1428)
- fix: change unknown slot type from
unknown
toany
(#1541) - fix: SFC templates outline incorrect (#1531)
- fix: slot shorthand highlighting incorrect if have not
=
(#1423) - fix: vue file import path auto-complete not working on windows (#1304)
- fix: avoid duplicate result in html (#1552) (#1530)
- fix: code action document edit version incorrect (#1490)
Breaking changes
-
experimentalSuppressUnknownJsxPropertyErrors
,experimentalSuppressInvalidJsxElementTypeErrors
is replaced bystrictTemplates
.{ "vueCompilerOptions": { - "experimentalSuppressUnknownJsxPropertyErrors": false, - "experimentalSuppressInvalidJsxElementTypeErrors": false, + "strictTemplates": true }, }
- feat: support html, css intellisense for petite-vue (#1471)
- fix: avoid unknown jsx property error for vue 2.7 (#1533)
- fix: fixed
GlobalComponents
interface not working edge case (#1489) - fix: stricter slots type extracting (#1522)
- fix: nuxt app preview not working
- feat: update support for vite-plugin-vue-component-preview v0.2
- feat: improve component preview UX
- feat: add --version flag for vue-language-server (#1510)
- fix: css class name codeLens range inaccurate (#1485)
- fix: fixed isIntrinsicElement is not a function error (#1478)
- feat: support component preview for Vite + Vue 3 (#1476)
you need to install vite-plugin-vue-component-preview manually to support this feature - feat: support auto insert
.value
for vue 2 (#1466) - fix: cannot define global components types with
@vue/runtime-core
in Vue 2 (#1469) - fix: cannot emit declaration with script setup on vue-tsc (#1459)
- fix: component auto import unreliable (#1470)
- fix: camel case scope css class name intellisense not working (#1447)
- fix(petite-vue): cannot access script tag local variables (#1471)
- perf: only support VitePress, petite-vue when
*.md
,*.html
explicitly added in tsconfig include property (#1463) - fix: respect
codeAction.disabledSupport
capability (#1454) - fix: auto import component tag name including "Vue" on import (#1461)
- fix: don't recognize components without script blocks as js languages (#1452) (#1455)
- fix: scope class name doesn't show underline (#1447)
- fix: withDefaults syntax break in
lang="tsx"
(#1458) - fix: alpine-language-server bin script name incorrect (#1460)
- feat: create alpine-language-features extension for support Alpine.js via reuse petite-vue language support works
- fix: petite-vue createApp arg range inaccurate
- fix: vue component context properties missing in petite-vue template
- fix: cannot resolve external vue file path (#1445)
- fix: petite-vue v-scope data type loss in inline handlers (#1442)
- fix: petite-vue createApp() initialData type missing in template (#1444)
- fix: SFC syntax highlight broken if directives missing
=
sign
- feat: support petite-vue
- fix: don't active VitePress intellisense for
.md
if file path in not include by tsconfig (#1430) - fix: cannot direct execution of fileReferences command (#1419)
- fix: avoid "`" auto close break markdown code block input (#1428)
- fix: component props completion info box missing in template
- fix: false positive props type error when JS component usage in TS component (#1426)
- fix: cannot recognize component properties in type reference in template (#1422)
- fix: slot binding type annotation not working if parent component is
<component :is>
(#1425) - fix: patch invalid
:
character in tag name (#1435) - fix: auto closing pairs not working in template expressions (#1437)
- perf: faster markdown content parsing for vitepress
- feat: support find file references
- feat: improve vitepress markdown parse reliability (#1410)
- feat:
vueCompilerOptions.experimentalSuppressInvalidJsxElementTypeErrors
default true (#1405) - fix: fixed TS error with props beginning with data* (#1413)
- feat: show deprecation message for
experimentalCompatMode
- fix: kebab case component type broken in vue 2 (#1405)
- feat: add
experimentalSuppressInvalidJsxElementTypeErrors
option to ignore missing component import error (#1404) - perf: support auto-import cache even TS version < 4.7 (#1406)
- perf: simplify template generated tsx code
- feat: VitePress support (#1399)
- feat: support
html.autoCreateQuotes
for pug - feat: enabled references codeLens for slots when use script setup
- feat: detect missing component import (#1203)
- feat: support
--generateTrace
for vue-tsc (#1375) - fix: dynamic slot name breaks template type checking (#1392)
- fix: don't report property does not exist error for
data-*
andaria-*
- fix: html selection highlight ranges incorrect (#1393)
- fix: avoid
DefineComponent
type loss when use script setup (#1391) - fix: css module
$style
inconsistent between vue-tsc and vscode (#1089) - fix: css class name and v-bind should not active in style comments
- fix: unused
console.log
to adapt vim-lsp (#1391) - fix: language server stuck on incomplete style variable injection expression (#1359)
- fix: remove
__VLS_
result from code actions
Breaking changes
-
vueCompilerOptions.experimentalCompatMode
is renamed tovueCompilerOptions.target
.{ "vueCompilerOptions": { - "experimentalCompatMode": 2 + "target": 2 }, }
- feat: add
vueCompilerOptions.experimentalSuppressUnknownJsxPropertyErrors
option for unkonwn props reporting - fix: template slots types missing when use export default in
<script>
with<script setup>
(#1389) - fix: fixed false positive
__VLS_radioBinding
on radio input tag. (#1390)
- feat: support format selection (range formatting) (#1370)
- feat: support format on type
- feat: support
@ts-check
,@ts-nocheck
for template (#1369) - feat: improve slots auto-complete (#1251)
- feat: support jsdoc for jsx IntrinsicElement (#1212)
- feat: experimental support for vue 2.7 with
"experimentalCompatMode": 2.7
- feat: support typed template slots for script setup (#1253)
- fix:
--extendedDiagnostics
not working on vue-tsc (#1375) - fix: template diagnostics incomplete on vue-tsc (#1372)
- fix: respected
textDocument.completion.completionItem.insertReplaceSupport
(#1373)
Breaking changes
feat: report error for unkonwn props (#1077)(Disabled by default in v0.36.1)
- feat: add tsc problemMatchers settings (#1277)
- fix: cannot watch external .d.ts file changes (#1343)
- fix: incorrect typescript error report with hgroup in template (#1340)
- fix: style variable injection syntax highlight not working for style languages other then
css
(#1365) - fix: false positive type check for method arguments with
defineExpose
(#1364) - fix: avoid html emmet active in style block (#1358)
- fix: unable to recognize the type of parameters as alongside
<script setup>
(#1324) - fix: component export default jsdoc loss when use
<script setup>
(#1327) - fix: false positive
@ts-expect-error
error inwithDefaults()
(#1336)
- perf: support TS auto-import cache for TS 4.7 (#1360)
- Please use 0.34.17 for TS 4.6.4 or lower
- feat: do not show unknown tag as red (#1247)
- feat: do not default enable
editor.semanticHighlighting.enabled
- feat: support syntax highlight for style variable injection
- fix: auto import creates wrong identifier when dot in file name (#1335)
- fix: avoid language server crash on TS 4.7 (#1300)
- fix: namespaced component type-check not working
- feat: add experimental option
vueCompilerOptions.experimentalRuntimeMode
for adapt uni-app (#1308) - fix: type narrowing broken by local variable declare in template (#1312)
- fix: cannot recognize component context on arg typeof of arrow function in template (#1326)
- fix: emmet suggestion interrupt when input symbol (#1322)
- fix: split editors layout not following settings
volar.splitEditors.layout.*
(#1330)
- feat: support auto-complete for template local variables (#1284)
- feat: check if vetur is active on doctor panel (#1305)
- feat: enabled
experimentalImplicitWrapComponentOptionsWithDefineComponent
forlang="js"
by default (#1298) - feat: add
vueCompilerOption.experimentalDowngradePropsAndEmitsToSetupReturnOnScriptSetup
option to improve intellisense on script setup forlang="js"
(#1192)
- feat: add setting
volar.vueserver.maxOldSpaceSize
to modify language server memory limit (#1299) - feat: add settings
volar.preview.script.vite
,volar.preview.script.nuxi
to customize preview server command - feat: move takeover mode status to status bar (#1294)
- feat: add settings to customize split editors layout (#810)
- fix: tsconfig status and ts version status dons't show with ts file on takeover mode
- feat: list vue meetup events on preview loading
- feat: show basic infos by doctor command (#1254)
- fix: avoid tsconfig include
.vue
files outside rootDir with typescript plugin (#1276)
Breaking changes
- Changed
vueCompilerOptions
propertyexperimentalShamefullySupportOptionsApi
toexperimentalImplicitWrapComponentOptionsWithDefineComponent
and disabled by default (#1291)
- chore: change extensions publisher (#1124)
- feat: add
"warning"
option toexperimentalShamefullySupportOptionsApi
and make default - feat: allow type narrowing in inline handlers bu config
"experimentalAllowTypeNarrowingInInlineHandlers": true
in vueCompilerOptions (#1249) - fix: avoid report error with config
"module": "es2015"
in tsconfig (#1263) - fix: find references result has invalid item
- fix: property access errors loss in template (#1264)
- fix: cannot rename html tag in some cases (#1272)
- fix: cannnot trigger auto-complete in import statement by input space
- fix: duplicate diagnostics in *.ts on takeover mode (#1234)
- fix: style block has redundant html emmet result (#1244)
- fix: language server crash with low TS version (#1242)
- fix: directives type-check not working (#1228)
- fix: auto-complete replace range incorrect in import statement (#1227)
- fix: template bindings error incomplete (#1205)
- fix: avoid auto-import added on same line as
<script>
(#916) - fix: embedded html interpolations syntax highlight not working in markdown
- fix: inlay hints not working in template
- fix: preview broken on nuxt3 rc (#1225)
- fix: cannot use import equals in script setup (#1223)
- fix: directives syntax highlight display incorrect in html comment inside svg tag (#1206)
- fix: vue documents diagnostics cannot update when other drive ts file changed
- fix: ts declaration diagnostics missing (#1222)
- feat: support inlay hints (#452)
- if you're not using VSCode, you should config new option
languageFeatures.inlayHints = true
in initializationOptions to enable it
- if you're not using VSCode, you should config new option
- feat: allow disable highlight dom elements on preview (#1209)
- feat: improve dom elements highlight display refresh
- fix:
typescript.format.semicolons
should not affect text interpolation (#1210) - fix: vscode settings cannot update for document features (#1210)
- fix:
{{ { foo } }}
object literal expression not working on text interpolations - fix: cannot infer event type with prop name format
onFoo-bar
(#1023) - fix: scoped class references not accurate on long document (#1059)
- fix: cannot update unediting vue document diagnostics (#1163)
- fix: emmet not working in style block (#1145)
- fix: nuxt preview not working on windows (#1123)
- feat: add option
experimentalShamefullySupportOptionsApi
to vueCompilerOptions (#1202) - fix: use html renaming instead of ts renaming on tags (#1201)
- fix: not support lowser node version (#1200)
- fix: cannot update global components props completion list (#1196)
- fix:
svg
attributes report false positive void type (#1184) - fix: css module types missing on template context (#1178)
- fix: false positive error with withDefaults + "strictNullChecks": false (#1187)
Breaking changes
- sass formatter is moved to external plugin: https://github.com/volarjs/services/tree/master/packages/sass-formatter
- feat: add prompt for
"jsx": "preserve"
missing - fix: auto-complete break language server if
"jsx": "preserve"
missing (#1171) - fix: typescript plugin extension not working (#1173)
- fix: code action not working on *.ts with take over mode (#1169)
- fix: object computed property name report false positive error in template (#1176)
- fix: should count variable uses with ref attribute (#1168)
- feat: preset
"jsx": "preserve"
for non-tsconfig project - fix: avoid template report errors if
"jsx": "preserve"
missing (#1161) - fix: attrs auto-complete and tag highlight incorrect on js project (#1158)
- fix: script setup report false positive error with defineExpose type arg (#1165)
Breaking changes
@volar/pug-language-service
now is a optional depend on vue-tsc, you need to install it additionally to support pug template type-checking on vue-tsc (#1092)
- fix: script setup report false positive error with multi-line interpolation
- fix: object spread assignment not working in template
- fix: html formatting result incorrect
- feat: release
@volar/preview
for support vite, nuxt 3 app preview features other then vscode IDEs (#1115) - fix:
require()
should not report error in template (#1161) - fix: template interpolations syntax broken with inline block comments (#1143)
- fix: vue-tsc emit declaration diagnostics incomplete (#1127)
- fix: ts plugin should not affect to non-vue project (#1144)
- fix: object literal santax not working in directive and v-for expressions (#1160)
- fix: shorthand property assignment santax not working in template (#1156)
- fix: should not emit
__VLS_
files file withvue-tsc --declaration --emitDeclarationOnly
- fix:
experimentalDisableTemplateSupport
not working - fix: formatting crashes with inline v-bind on scoped v-slot (#1151)
- fix: language server broken in js project without allowJs
Breaking changes
- Changed
experimentalResolveNonScopedCssClasses
toexperimentalResolveStyleCssClasses
(#1121)
- fix: fixed vue-tsc broken regression
- feat: expose
useConfigurationHost
for external language feature plugins - perf: faster language server initialization
- perf: simplify template script generation (#455)
- perf: reduce TS language service instances (#1108)
- fix: web bundle lead to package size greatly increased (#1084)
- fix: undefined sortText break vim (#1118)
- fix: template context do not update by external .ts scripts (#565)
- fix: not respect HTML completion settings (#1139)
- chore: default disabled
volar.autoCompleteRefs
for reduce CPU usage
Breaking changes
- Not support typed template slots for now (#1108)
- Not support emits renaming
- Not support props renaming for
Vue.extends
orlang="js"
- Changed built-in HTML formatter from
prettyhtml
tovscode-html-languageservice
(#1078)- If you would like to use
prettyhtml
, seeprettyhtml
section in #1027
- If you would like to use
- Changed built-in CSS formatter from
prettier
tovscode-css-languageservice
(#1131)- If you would like to use
Prettier
, seePrettier
section in #1027
- If you would like to use
- Changed setting
volar.lowPowerMode
tovolar.vueserver.useSecondServer
and disabled by default- When disabled, language service instance reduce a half of memory usage, but auto-complete should be slower in expected
"jsx": "preserve"
now is required for template type-checking (#1153)
- feat: support preview features on external browser
- press
Alt
key to activating go to code feature
- press
- fix: can't open multiple preview windows
- perf: faster vue-tsc watch response
- fix: memory leak on vue-tsc watch (#1106)
- fix: emmet block html src path completion (#1105)
- feat: highlight selections code on preview
- feat: add setting to disable preview icons (#1101)
- feat: support nuxt 3 app preview and goto code
- fix: avoid click event on element when use goto code
- fix: style codeLens references always show 0 references (#1095)
- fix: TS completion not working in interpolations (#1088)
- fix: not respected
html.autoCreateQuotes
,html.autoClosingTags
settings (#840) - fix: organize imports code action edge range incorrect (#1091)
- fix: don't report css module
$style
types error on vue-tsc (#1089) - fix: css vars no effect on vue-tsc (#1093)
- fix: diagnostics not update (#1076)
- fix: expand selection broken since 0.33.0 (#1085)
- fix: vueCompilerOptions typo
experimentalRsolveNonScopedCssClasses
->experimentalResolveNonScopedCssClasses
- fix: 0.33.3 release packages missing
/out
directory (#1086)
- feat: support attribute binding syntax
:<name>.attr
(#1047) - feat: supoprt document features for Web IDE (#612)
- feat: add option to support intellisense for non-scoped css (#1038)
- feat: reduce vue-tsc depends
- fix: json schema request service not available since 0.33.0 (#243)
- fix: remove
console.log
avoid vim-lsp crash (#1046) - fix: emmet suggestions messed up embedded language suggestions (#1039)
- fix: missing proposals for HTML attribute value (#1072)
- fix: vue-tsc watch not always catch vue file changes (#1082)
- fix: previewer not working with pnpm (#1074)
- fix: global components type not working with
vue-class-component
(#1061) - fix: goto component definition not working with some syntax (#435) (#1048)
- fix: directives argument should be optional if argument could be undefined (#1040)
- feat: add option
vueCompilerOptions.experimentalDisableTemplateSupport
to disable template type-check and intellisense (#577) - fix: avoid props jsdoc erase by
withDefaults
- fix: sponsors svg never update
- feat: improve formatting error tolerance (#1033)
- fix: template report unexpected errors (#1036) (#1037)
- fix: can't extract template context in js (#1035)
- feat: reduce vue-tsc depends
- feat: support more language features for
lang="json"
custom block - feat: support for goto implementations
- if you're not using VSCode, you should config new option
languageFeatures.implementation = true
in initializationOptions to enable it
- if you're not using VSCode, you should config new option
- feat: support custom language service plugins for (#1028):
- change built-in formatters
- add language support for custom block with any other language yourself
- feat: support vue-tsc watch (#1030)
- feat: preview features not longer needed authentication
- fix: pug formatting broken (#1002)
- fix: vite app preview not working on windows (#1013)
- fix: fallback event type behavior for invalid type components (#1001) (#1026)
Breaking changes
@volar/server
renamed to@volar/vue-language-server
- cli command
vue-server
changed tovue-language-server
- cli command
vscode-vue-languageservice
renamed to@volar/vue-language-service
vscode-typescript-languageservice
renamed to@volar/typescript-language-service
vscode-json-languageservice
renamed to@volar/json-language-service
- feat: support generic events with props (#981)
- fix: slots references always 0 (#932)
- fix:
source.organizeImports
not working ineditor.codeActionsOnSave
(#906) - fix: component type incorrect if duplicate name with current
<script setup>
file name (#944) - fix: language server broken if TS version < 4.4 (#962)
- fix: pug outline element level incorrect (#969)
- fix: document symbols confusion between
<script>
and<script setup>
(#994) - fix: vite icon do not show with first editor
- feat: experimental webview features for vite (#208)
- perf: bundle extension to speed up startup
- perf: faster auto-import completion (#808)
- feat: trigger event auto-complete when input
@
(#949) - feat: add
v-bind:*
,v-on:*
to auto-complete (#949) - feat: avoid auto import added in script block first line (#916)
- fix: language features not working in symbolic link project (#914)
- fix: language server throw in
process.env.NODE_ENV === 'production'
env (#915) - fix: component type broken by union event key type (#926)
- fix: document symbol not working for
<script setup>
(#938)
- feat: improve scoped css class name references codeLens, auto-complete (#907)
- fix: support type export statements on the top in
<script setup>
(#886)
- feat: support generic emits (#877)
- feat: support top level await in
<script setup>
without extra tsconfig setting (#538) - feat: fully support formatting for v-for expression
- fix: can't ignore variable unused report by
_
prefixes in v-for (#878) - fix: no error when definitions from
<script setup>
used in<script>
(#766)
- fix: re-support
withDefaults
for props type in template (#868) - fix: tsconfig report
schemas/tsconfig.schema.json
missing (#869) - fix: enabled
editor.semanticHighlighting.enabled
by default to avoid component tag show invalid color when installed some themes - fix: export default expression semicolon breaks component type in script setup (#874)
- fix: don't wrap options with defineComponent when convert to setup sugar
Breaking changes
- When use
<script setup>
, ignore extra component options wrapper function (defineComponent
/Vue.extends
...)
- fix:
vueCompilerOptions
intellisense not working on jsconfig - fix: vue-tsc broken on windows in 0.30.3
- fix: component tag semantic highlisht token incorrect with folding (#801)
- fix: component type broken by
withDefaults
in 0.30.3
Breaking changes
- Unsupported
withDefaults
for component props type
- feat: auto wrap
()
to as expression (v-bind="foo as string"
->v-bind="(foo as string)"
(#859) - feat: support tsconfig properties intellisense on take over mode (#833)
- feat: support
vueCompilerOptions
intellisense in tsconfig (#833) - fix: vue-tsc and typescript could't guaranteed found each other (#851)
- fix: avoid vue-tsc stripped props jsdoc comments for script setup components (#799)
- fix: string source type incorrect in v-for (#839)
Known regressions
- component type broken by
withDefaults
- vue-tsc broken on windows
- feat: jsdoc comment suggestion (#827)
- feat: TS directive comment suggestion
- feat: auto insert attribute quotes
- fix: css error range not reliable (#826)
- fix: html, css completion trigger characters
- fix: allow loose vue language id for markdown (#831)
- fix: avoid auto close tag with undo (#837)
- feat: support vue 2 component slots type (#819)
- feat: expose component public instance type by
defineExpose
- feat: support scoped class name auto-complete (#752)
- feat: alway show commands after extension activated (#795)
Breaking changes
- Unsupported
vueCompilerOptions.experimentalExposeScriptSetupContext
option
- feat: support components type-check by
static components
for class-base component (#753) - feat: support
vueCompilerOptions.experimentalExposeScriptSetupContext
option for jest (#805) - feat: support
typescript.suggest.autoImports
setting (#746) - fix:
@vue/composition-api
defineComponent types incorrect in template (#780) - fix: directives syntax highlight incorrect in svg tag (#776)
- fix: project references ignored jsconfig (#756)
- fix: html semantic tokens range incorrect in long template code (#801)
- fix:
typescript.preferences.importModuleSpecifier
setting not working for component auto import (#793) - fix:
Organize Imports
commmand not always working (#798) - fix: css variable injection virtual code cannot update (#777)
- fix: should not initializes new language service when create a new file (#802)
- fix: new file first diagnostics incorrect
Breaking changes
- Do not support component context types in template for
export default { ... }
withoutVue.extend
ordefineComponent
(#750)
- perf: cache
URI.file
,URI.parse
results - fix: pug template type-check broken with omit tag name
- fix: language server broken with tsconfig extends a non-relative path (#747) (#749)
- feat: support html, css custom data (#707)
- feat: support extends tsconfig
vueCompilerOptions
(#731) - fix: cannot config project reference by directory path (#712)
- fix: pug attrs type-check borken by nested tags (#721)
- fix: import path rename result incorrect (#723)
- fix:
editor.codeActionsOnSave: ["source.organizeImports"]
not working (#726) - fix: goto definition not working with some component import statement (#728)
- fix: don't show volar commands in non-vue document (#733)
- fix: vue-tsc not working with symlink (#738)
- fix: attrs show unexpected "not exist" error (#710)
- fix: verify all scripts not working if no jsconfig / tsconfig
- fix: organize import edit text range incorrect (#714)
- fix: class component props type-check not working with multiple props (#705)
- fix: emmet should not active in template interpolations
- fix: TS semantic highlight not working
- feat: open tsconfig when click in status bar
- feat: add
experimentalTemplateCompilerOptionsRequirePath
option to allow import compiler options from js file (#698) - fix: pug folding ranges break by empty line (#688)
- fix: reduce the intrusiveness of template type-check hacks (#689)
- fix:
@volar/server
entry files missing in npm publish (#695) - fix: language server immediately crashes when trigger request at incomplete TS code (#699)
- fix: html / css path resolve incorrect on windows edge cases (#694)
- doc: fix incorrect
experimentalTemplateCompilerOptions
example:"compatConfig": { "Mode": 2 }
->"compatConfig": { "MODE": 2 }
- feat: syntax highlight support for Web IDE (#612)
- fix: semantic highlight can't update if project have no tsconfig or jsconfig (#685)
- feat: support syntax highlighting for
lang="toml"
(#684) - fix: subfolder path resolve logic cause to TS crash edge case (#679)
- fix: document server created multi time
- fix: html hover not working in some non-VSCode clients (#678)
- fix: template AST broken by empty line in pug (#676)
- fix: intellisense not working if project have no jsconfig / tsconfig (#680) (#681)
- feat: support namespaced component (#372)
- feat: more strict
.value
auto-complete condition - feat: show current tsconfig on status bar
- feat: provide public api to generate script setup type-check code (#650)
- feat: add sass formatter
- fix: can't exit split editors by click icon edge cases
- fix: semantic tokens not working in pug template
- fix: script setup component name not recognized edge cases
- fix: ignore template language support if not
html
orpug
(#659) - fix: tsconfig
types
paths resolve incorrect in monorepo (#661) - fix: can't update diagnostics on windows + atom
- fix: project finding logic incorrect with tsconfig
referencecs
option (#649) - fix:
{{ }}
colorized bracket pairs not working - fix: documentSymbol, foldingRanges not working to some *.ts files on take over mode
Breaking changes
- experimentalCompatMode behavior changed (#576)
do not force configcompatConfig: { Mode: 2 }
to template compiler with"experimentalCompatMode": 2
- feat: improve pug folding range (#636)
- feat: improve pug tag, attr auto-complete (#638)
- fix: if trigger component auto-import multiple times, import edit text accumulate (#639)
- fix: filter current component from component auto-import list
- fix: normalize request uri for Sublime / Atom (#637)
Known regressions
- semantic tokens not working in pug template
- feat: use VSCode 1.61
Split Editor In Group
instead of create new editor (#608) - feat: split editors layout change from
script | template | style
toscript + style | template
- feat: tag name conversion work done progress
- fix: language server broken by circular tsconfig project references (#525) (#631) (#632)
- fix: vue-tsc can't show "incremental mode / watch mode not support" error message (#630)
- fix: tag name kebab case -> pascal case conversion not working
- fix: LSP workspace configuration option not supported (#626)
- fix: no edit to
components
option when component auto-import (#634)
- feat: support html hover settings (#627) (#615)
- fix:
withDefaults
can't narrowing props undefined (#611) (#614) - fix: vueCompilerOptions not working with vue-tsc --project flag (#613) (#615)
- fix: tsconfig project references are not respected (#525)
- fix: can't access
$slots
,$props
... in template if no script block (#601) - fix: defineEmit not working with type alias (#607)
- fix:
GlobalComponents
working for vue2 (#609)
- feat: support for emit SFC dts by vue-tsc (See https://github.com/vuejs/language-tools/tree/master/packages/tsc#using)
- feat: support search workspace symbols (command / ctrl + T) (#549)
- fix: alias path completion not working in root segment (#589)
- fix: can't convert invalid component type to
any
(#594) - fix:
<script>
document symbols result inconsistent to TS
- feat: support for open
*.ts
to enable take over mode - fix:
any
type component should not show red color - fix: auto-import should not from virtual file
__VLS_vue
(#584) - fix: path auto-complete not working in template (#589)
- feat: add option to disable component auto import (#440)
- feat: add
volar.takeOverMode.enabled
setting to allow enable take over mode even TS extension active - fix: only the last typed event of defineEmits gets recognized (#578)
- fix: syntax highlight incorrect if event name has number
- fix: dynamic slot syntax highlight incorrect
- fix: interpolations syntax highlight should not active in html comment block
- fix: multi-line event expression formatting indent incorrect (#579)
- fix: don't report error
Its return type 'xxx' is not a valid JSX element.
to invalid functional component type (#574) - fix: improve
$emit
types extract for events type-checking (#567) - fix: css class references not working for pug (#569)
- fix: completion broken in Sublime (#573)
- feat: make vue-tsc version consistency to volar (vue-tsc#72)
- feat: remove tsPlugin prompt
- feat: remove vue-tsc version checking
- fix: avoid
noPropertyAccessFromIndexSignature
effect to slots (#561) - fix: interpolations syntax highlight not working in html (#562)
- fix: style attr can't end with
'
(#563) - refactor: rewrite vue-tsc by TS
- feat: support syntax highlight for vue blocks in markdown
- feat: support vue directives, interpolations syntax highlight for html / pug code outside vue script
- fix: template type-checking incorrectly reports error when using pnpm
- fix: template slots type-check broken
- fix: allow component type that missing
$props
property - fix: slots type broken by expression-less attributes
- fix: don't pass unsupport component type to JSX (#553)
- fix: dynamic props borken (#555)
- fix: don't show virtual files in find references result
- fix: directives type-check broken
Breaking changes since 0.27.27
- If your project includes Storybook or
@types/react
, you need to config tsconfigtypes
option to avoid@types/react
affect to template type-checking. See #552.
- feat: support generic
$slots
types - feat: improve
v-for
typing (#546) - feat: support vue project isn't root folder (#541)
- fix: slots type of any type component incorrect (#547)
- fix: optional
$slots
type incorrect - fix: ignore union type component to avoid error in template (vue-tsc#80)
- feat: support slots type-checking by
$slots
property (#539) - fix: generic props type-check not working
- fix:
Map
index type incorrect in v-for (#544)
- fix: variables unused report can't update in *.ts in take over mode
- fix: when save file, next document changes diagnostics, semantic tokens incorrect
- feat: add open VSCode settings json button in takeover mode prompt
- feat: disable code convert codeLens by default
- perf: use VSCode's file watcher instead of TS file watcher to reduce cpu usage (#523)
- perf: remove redundant fileExists logic
- fix: fixed zero length TS diagnostics missing (#527)
- fix: import statements auto-complete not working in latest VSCode
- feat: support TS annotation on v-model (#518)
- fix: events type-check don't report errors (#516) (#517)
- fix: hyphen events types incorrect (#515)
- fix: find references, renaming not working to template in takeover mode (#519)
- fix: exclude files should fallback to inferred project (#511) (#445)
- feat: support
<script setup>
types in template expressions - feat: support TS syntax highlighting in template expressions
- perf: cpu keep high usages if node_modules contains lot of d.ts files (#507)
- perf: lazy calculation TS plugin proxy, TS program proxy to reduce initialization time (#507)
- fix: SFC validation broken with
lang="postcss"
(#508)
- feat: remove TS plugin to single extension (#501)
- fix:
v-for
item type report circular reference edge case - fix: external file snapshot cannot update in TS plugin (#506)
- fix: cannot extract superset
DefineComponent
emit option type (#495) - fix: sometime component props auto-complete not working in template
- fix: should not ignore
.vitepress
folder (#506) - fix: fixed a few drive file update event logic
- feat: support css settings (#492)
- perf: cache vscode configuration
- fix: props auto-complete not working for hyphenate components (#487)
- fix: inline style with line break is broken (#489)
- fix: cannot find module 'upath' in vscode-pug-languageservice (#493)
- perf: improve template type-checking performance
- fix: template component tags coloring range incorrect
- fix: improve vue-tsc version checking accuracy
- fix: language server broken when typed
\
(#468) - fix: remove old status bar items when restart servers (#486)
- fix: fixed emits type extract failed edge cases
- feat: support dynamic prop
- perf: much faster template type-checking for vue-tsc
- feat: support renaming for
ref="xxx"
(#472) - feat: support bracket pair colorization
- fix: request failed when typing
import |
if TS version < 4.3 (#468) - fix:
ref
attribute type incorrect (#473) - fix:
v-bind
+ single quote parse failed (#474) - fix: tag name conversion not working (#475)
- fix: auto import path preview not working
- 🎉 feat: take over mode (#471)
- feat: ts plugin status bar default hide
- feat: improve accurate style variables support (#463)
- fix: javascript format settings not working (#466)
- fix: semantics token not working in *.ts (#469)
- fix: fixed formatting result broken extreme case (#470)
- feat: reuse
volar.tsPlugin
- fix: can't override events type by props
- fix: don't report error on unknown events
- fix:
any
type comoponent should not show red (#461) - fix: html element attrs type-check broken
- fix: template slot type-checking broken (vue-tsc#70)
- fix: more accurate component props extract (#459)
- feat: expose
@volar/server/out/index.js
tovolar-server
command (#458) - fix: component type incorrect if duplicate name in props (#453)
- fix: fixed
typescript.serverPath
relative path finding
- feat: support TS 4.4 (#428)
- feat: support vue2 nameless event (vue-tsc#67)
- feat: support lsp client which unsupported workspaceFolders
- fix:
/** */
auto close not working (#446)
- feat: unused dynamic registration to adapt nvim LSP #441#issuecomment-895019036
- fix: can't not find template context properties if
<script>
block missing (#437) - fix: import completion incorrectly append
$1
(#371) - fix: completion should retrigger by space
- fix: json types cannot update in *.vue on editing
- fix:
<script src>
unprocessed since v0.27.8 (vue-tsc#65) - fix: TS plugin not working since v0.27.8 (#435)
- fix: de-ref-sugar conversion can't add missing imports
- fix: more acurrate code action result
- feat: low power mode (#390)
- feat: improve setup sugar conversion
- fix: setup sugar convert failed since v0.27.8
- fix: incorrect indentation after generic argument (#429)
- feat: consistent folding range with typescript-language-features (#414)
- feat: support custom directives type-checking with
<script setup>
(#422) - feat: check directives used for
<script setup>
(#327) - feat: improve SFC parser (#420)
- feat: .vscodeignore whitelist (#423)
- feat: more loose template type-check with
<script lang="js">
- fix: specific language syntax highlighting not working with single quotes (#409)
- fix: component should be
any
is no script block (#412) - fix: add
@volar/server
missing deps (LSP-volar#9) - fix: add
@volar/transforms
missing deps (#430) - fix: jsx / tsx syntax highlighting broken by html syntax injection (#426)
- perf: fixed high CPU usage after switched branch (#432)
Breaking changes
- remove tsPlugin required / unrequired prompt and
volar.tsPlugin
setting
- feat: check vue-tsc version on start extension (#381)
- feat: support for non-tsconfig project (#349)
- fix: tsconfig priority should be higher than jsconfig (#400)
- fix: fixed hover info broken in *.ts when TS plugin enabled
- feat: support multiple
v-bind(...)
in single css expression - feat: support
v-bind(...)
expression syntax with quotes - fix: unhandled language client option:
showReferencesNotification
- fix: codeLens resolve request broken in template
- fix: language server borken when execute sugar convert commands (#397)
- feat: support css variable injection (#335)
- feat: make
<script setup>
below<script>
when convert to setup sugar (#378) - feat: support sfc named css modules (#379)
- fix:
export default { ... }
syntax broken with setup sugar (#383) - fix: attr name case option "pascalCase" -> "camelCase" (#384)
- fix: html completion edit range incorrect if typing before old completion request finish (#385)
- perf: faster intellisense and diagnostic in
<template>
- fix: go to component props definition broken in template
- perf: reduce virtual files for TS project (against 0.27.2)
- feat: support template type-checking with jsdoc in
<script lang="js">
- fix:
setup()
return properties unused check not working for component - fix: radio v-model should not bind to checked
- fix: clear registered commands when restart servers (#374)
- fix: remove
vscode-emmet-helper
rename warning for vue-tsc - fix: components option should be remove when convert to setup sugar
- fix: fixed sometime throw error when convert setup sugar
- fix: prevent top level await error in
<script>
block
- feat: support ref sugar (take 2) convert codeLens
- feat: support setup sugar convert codeLens
- feat: support more TS refactor code actions
- perf: faster code action and validation
- fix: setup returns unused check not working
Breaking changes
- unsupported ref sugar (take 1) syntax and convert codeLens
- feat: improve pug conversion result (#363)
- feat: improve
DocumentSymbolRequest
support - feat: support
SelectionRangeRequest
- fix: diagnostics do not report with open second vue document
- fix: add missing
vscode-uri
dep (#365) - fix: "Delete all unused imports" code action not working
- perf: faster split editors
- perf: faster document update for html server
- perf: move codeAction to api server to prevent codeAction request blocking by diagnostics when save + auto-formatting
@volar/server
Breaking changes
- ServerInitializationOptions: features -> languageFeatures
- ServerInitializationOptions: htmlFeatures -> documentFeatures
- ServerInitializationOptions: move
selectionRange
,documentSymbol
,documentColor
to documentFeatures - remove
RestartServerNotification
(restart by client now)
- feat: support GraphQL custom block
- feat: support inline GraphQL syntax highlighting (#358)
- fix: checkbox, radio input tag v-model prop name should be "checked" (#356) (vue-tsc#55)
- fix: ignore
"checkJs": true
for template interpolations (#353) - perf: reuse
ts.createSourceFile
result to reduce script contents update cost
- fix: prevent
vue-tsc --noEmit
warnings with"experimentalCompatMode": 2
#351#issuecomment-895019036 - fix: vue-tsc build failed with
<xxx v-for v-slot>
due to code gen side effects (vue-tsc#53)
- fix: republish to replace incorrect script name:
vue2templateCompiler.js
->vue2TemplateCompiler.js
(#352)
- 🎉 feat: support for vue 2 template (#351)
- fix: support for
"noPropertyAccessFromIndexSignature": true
(#350) - fix:
.value
should not append in function parameter name - fix:
.value
should not append in object property assignment name - perf: reuse template compile result
- feat: support for workspace trust
- feat: support config for HTML formatting print width by
volar.formatting.printWidth
option (#321) - feat: support for typescript
updateImportsOnFileMove
setting to disable prompt (#332) - feat: add "Show in Browser" button to component preview
- fix:
<input>
,<textarea>
,<select>
v-model prop name shoud bevalue
- fix: component preview not working on windows
- fix: delete file can't trigger related scripts diagnostics update
- fix: disable component tag type-checking to avoid some unable fix edge cases (#333)
- chore: refactor
@volar/server
API and released@volar/server
- perf: remove
vscode.css-language-features
andvscode.html-language-features
rely (vscode#98621) - fix:
.value
should not append in function declaration name and literal type - fix: update extra virtual files before check virtual file exist (#326)
- fix: convert tag name case command not working
- feat: improve for slot name type-check
- feat: experimental component preview
- feat: improve template code finder (#208)
- feat: add refresh webview button
- fix: hover request failed with jsdoc
@link
- fix: prevent null emmet configs (#247)
- feat: remove import type checking for
<script setup>
(#325) - feat: add ref sugar deprecated message
- fix: goto definition not working for
lang="js"
target without allowJs
- feat: support formatting in v-for expressions
- feat: change interpolation braces syntax token
- fix: fixed a few problems when goto definition to import file path
- fix:
<script lang="x">
change should update template verification - perf: faster diagnostics
- feat: support component auto-import with empty script block (#232)
- feat: disable template type-checking with
<script lang="js">
(#46) - fix: remove missing deps (vue-tsc#45#issuecomment-882319471)
- fix: change TS library file rely from tsserver.js to tsserverlibrary.js
- fix: css references codeLens broken
- fix: TS completion resolve failed with jsdoc link
- fix: convert tag name case failed edge case
- feat: add remove all ref sugar command
- feat: improve ref sugar remove tool
- fix: fixed find references never finish edge cases
- fix: template type-checking not working with
<script lang="js">
(#319) - fix: definition selection range incorrect
- fix: fixed monorepo project alway pop warning
- fix: preset empty object if can't get TS settings (#316)
- feat: update supports for vscode 1.58
- refactor: remove formatters deps for
vue-tsc
- fix: script block virtual script language incorrect (should not force to
ts
) - fix: goto definition broken with ref sugar
- feat: support FunctionalComponent events type-check
- feat: support for TS setttings (for TS preferences, formatOptions)
- fix: withDefaults props type incorrect in template
- fix: downgrade
@vue/compiler-sfc
to fix template range for formatting, codeLens - fix: handle SFC parse failed for component auto-import
- fix: semanticTokens search range incorrect
- fix: fixed a few TS semanticTokens problems
- fix: namespace imports should expose to template (#311)
- fix: events auto-complete names incorrect with
attr: pascalCase
config (#312) - fix: validation for "virtual script exist" not working
- fix: TS completion documentation incomplete
- perf: fix can't reuse old TS program if
<script lang="js">
exist since 0.26.0
- fix: fixed a few TS renaming, find referenecs problems
- fix: first time *.vue file change can't effect *.ts diagnostics
- feat: split TS language service to script TS language service and template TS language service (#94) (#253)
- fix: optional props type incorrect in
<script setup>
(#302) - fix: formatting make double spacing in empty pug template block (#304)
- fix: fixed callHierarchy request failed if skip prepare request
- feat: improve
volar.autoCompleteRefs
and make it out of experimental (#201) - fix: ref sugar not working with nullish coalescing operator (#291)
- fix: hover broken with jsdoc @link tag (#289)
- fix: prop type incorrect in template with
withDefaults()
(#290)
- feat: support
withDefaults()
in<script setup>
- feat: expose
<script>
variables to template in<script setup>
- feat: change defineEmit to defineEmits in
<script setup>
(defineEmit still support a period of time) - fix: improve event type infer (#286) (#287)
- fix: improve empty attribute type infer (#288)
- fix: can't assign expression to no args event (#270)
- fix: empty attr type incorrect (#261)
- fix: completion resolve broken in TS 3.4
- fix: prevent throw error with unknown tag's properties (#284)
- fix: add patch for
<script src>
TS file path (vue-tsc#30)
- feat: expose ClassDeclaration, EnumDeclaration from
<script setup>
(#274) - fix: template context broken with
<script lang="tsx">
(#275) - fix: don't convert source code to unicode with component auto-import (#272)
- fix: don't infer
update:xxx
event type by props (#266) - fix: functional component type-check behavior inconsistent with JSX (#268)
- feat: improve TS diagnostic message (#259)
- fix: incorrect unescaping of literal strings (#262)
- fix: dynamic slot name do not consume variable (#263)
- fix: temporary html completion info leak to hover info
- fix: TS definition result duplicate
- feat: support for typescript pnp (#248)
- feat: improve component auto-import path calculate
- fix:
Write Virtual Files
command not working
- fix: remove
fs-extra
to fixat-least-node
module missing
- feat: support json schema request service (#243)
- feat: support shortest component auto-import path (#233)
- fix: component auto-import not working with dash (#249)
- fix: fix some
Cannot read property ...
errors (#247) (#251) - fix: syntax highlighting not working for
lang="jsx"
- fix: folding not working for jsx (#234)
- fix: fix vue-tsc build failed
- feat: support for change TS version by
typescript.tsdk
option (#224) - feat: support for TS 4.3
- fix: auto import component should prior choice
<script setup>
- fix: disable component auto import if no any
<script>
block
- fix: language server broken with incorrect module importing
- feat: auto import component in template (#194)
- feat: filter duplicate event modifiers completion
- fix: path completion not working for
<script src>
withoutlang="ts"
(#223)
- feat: add option to hide the split icon at the top right corner (#195)
- feat: add ts plugin description link in ts plugin menu
- fix: file icons are emptied when importing (#198)
- fix: css prepareRename range incorrect if no
<template>
(#212) - fix: don't report
lang="ts"
missing if script content is empty (#215) - fix: ts plugin features broken with json script kind 0386094
- fix: component rename breaks the component source file (#206)
- fix: emmet should not working in template expression interpolations
- fix: add patching for a serious TS freeze bug (#205) (vscode#124561)
- feat: support props type override (#202)
- fix: support
<component :is>
type-checking with VNode (vue-tsc#34) - fix: cannot find module 'upath' with pnpm (#204)
- feat: support find definition in
*.ts
even ts plugin disabled - feat: new experimental preview feature
- fix:
<script setup>
component name incorrect - fix: inline style breaks SFC syntax highlighting (#199)
- fix:
<template>
tag child nodes syntax highlighting broken
- feat: support recursive components for
<script setup>
- fix: improve type-checking for
<component :is>
(#196) - fix: fix
<template>
block syntax highlighting broken edge cases (#192)
- feat: support for
<component :is>
type-checking
- 🎉 feat: support for named recursive components (#190)
- fix: custom events type-checking broken
- perf: optimize get script version (#186)
- feat: improve UX for TS plugin status bar
- feat: support syntax highlighting for
lang="json"
,lang="jsonc"
,lang="yaml"
,lang="md"
(#127) - feat: support validation for
lang="json"
,lang="jsonc"
- feat: support emmet for JSX, TSX (#184)
- fix: fix template syntax highlighting broken edge cases
- fix: fix auto-import not working edge cases
- fix: should not have auto-import from virtual files
- fix: native events types incorrect if component do not have emits option (#180)
- feat: improve embedded languages syntax highlight
- feat: support html snippets in template
- feat: add create workspace snippets command
- fix: pug autocomplete broken with class attribute (#177)
- perf: fix pug semantic tokens performance loophole (#162)
- feat: released
typescript-vue-plugin
(#169) - fix: split editors icon size incorrect (#170)
- feat: improve component tag hover info
- feat: improve component types for
export default { ... }
- feat: support for generic functional component
- feat: move "Start Split Editing Mode" to command
- fix: props auto-complete not working
- fix: fix released npm package size
- feat: split status bar item
<TagName attr-name>
toTag: xxx
,Attr: xxx
- fix: tag name case status bar item not working on start
- fix:
<style module>
class name renaming result incorrect - fix: hyphenat component renaming not working
- fix: ref sugar renaming result incorrect with destructure
- fix: ref sugar renaming not working on right expression
- 🎉 feat: support find references in
*.ts
even ts plugin disabled - fix:
Set<any>
item type incorrect inv-for
- fix: server initializing progress not working
- fix: add patching for
@vue/composition-api
event types for now
- fix: css hover quick info not working
- perf: don't send source map to lsp protocol to avoid json parse
- feat: support path completion for template languages (html, pug)
- feat: support path completion for style languages (css, less, scss, postcss)
- feat: support css code action
- feat: dynamic resolve url links in css
- fix: filter invalid component names #159
- fix: css completion broken
- fix: don't increase indent on
<script>
,<style>
- feat: new IDE option
volar.preferredAttrNameCase
- feat: support change props completion name case in status bar
- fix: component tag name case conversion not working edge case
- perf: fix html completion should not calculate every times typing
- feat: new IDE option
volar.preferredTagNameCase
#156 - feat: new status bar item for support change completion tag name case
- feat: component tag name case conversion
- feat: support adding breakpoints #107
- fix: don't report error if class name does not exist in
$style
#157 - fix: don't complete attribute value for
v-else
,scoped
,module
,setup
- revoke: remove
Volar: Format All Scripts
command (use Format All Files in Workspace extension for replacement)
- fix: ref sugar report incorrect errors on
vue-tsc
vue-tsc#18 - fix:
<slot>
should not report error withdefineComponent(function () { ... })
vue-tsc#21
- feat: new option
Don't care
for TS plugin by default to reduce reload vscode - feat: check variables is valid returns for
<script setup>
- fix: pug template checking broken with vue-tsc vue-tsc#14
- fix: emmet completion working incorrectly #135
- fix: import path completion replace range incorrect
- fix: define slot props as const
- perf: faster typescript diagnosis response
Breaking changes
See: #134
- feat: unsupport
volar.style.defaultLanguage
option - feat: unsupport
@vue-ignore
- feat: improve type-checking of dynamic slot
- chore: simplify
v-on
modifiers completion label
- feat: event modifiers auto-complete #126
- fix:
v-else-if
type narrowing not works in last branch #130
- feat: improve types infer without defineComponent #59
- fix: handle readonly array in
v-for
- fix: template context not update on completion
- perf: don't update project version if document content no changes
- fix: vnode hooks typing broken in template
- fix: global components typing broken if no
<script>
block - fix: local components typing broken with pnpm #123
- fix: init progress broken
- perf: reuse import suggestions cache
- fix:
<script setup>
components unused report incorrect #122 - fix: unused cache to fix completion resolve crash edge cases
- fix:
v-if
intellisense not working - fix: type-only
defineProps
declarations broke template intellisense #121
- perf: faster intellisense for
<script setup>
- fix: ref sugar variables types incorrect edge case
- 🎉 feat: new split editing mode
- feat: auto import path preview
- fix: remove typescript hover info from
<style scoped>
classes - perf: faster auto-complete and completion resolve
Breaking changes
- feat: unsupported global component by
app.component(...)
calls, see: https://github.com/vuejs/language-tools#using
- fix: fix diagnostics shaking
- fix: events hover info not working if no expression
- fix: template diagnosis response delay
- fix: reduce diagnostics shaking
- fix: only diagnosis import variables in
<script setup>
return
- feat: report error if import type in
<script setup>
incorrectly - perf:
<script setup>
performance small improvement - fix: allow
ref:
declarations without initialized - fix: export assignment intellisense not working if
<script setup>
exist
- feat: improve events hover info
- feat: support pug new line syntax
\
#118 - fix:
v-for
not working withv-slot
#110 - fix: completion detail not working when keep typing
- feat: support pass props as
v-bind="..."
syntax vue-tsc#9 - feat: support use not compiled
@vue/runtime-dom
library - fix:
defineEmit()
types incorrect in template if use pure type define - perf: improve virtual documents update performance
- feat: improve
v-for
type-checking #117 - feat: improve events type-checking #116
- feat: support
"noUncheckedIndexedAccess": true
vue-tsc#8 - fix: auto-complete duplicate in
v-model="..."
- feat: sfc parse diagnostics
- feat: improve v-slot support
- fix:
vue-tsc
throw oncomponent()
call without string literal - fix: kebab case slots not working
- chore: update vue to 3.0.9 to fix a few bugs
- feat: improve props js doc hover info
- feat: improve component recognition
- fix: don't patch diagnostics without postcss
- fix: handle
documents.onDidChangeContent
send incorrect file name - fix: html hover info not working
- fix: diagnostics should update if tsconfig.json update
- fix: fix style attributes duplicate error #109
- fix: patch postcss diagnostics #103
- fix: handle file name is
Foo.vue
but LSP sendfile:///.../foo.vue
- fix: fix lsp not working on monorepo edge case
- fix: pug tag less element mapping incorrect
- fix: extra hover info duplicate
- fix: error when hovering the slot bindings
- feat: props jsdoc support
- fix: emmet not working for inline css
- fix: use
for...in
instead offor...of
to v-for
- fix: extra files watcher not working on windows
- fix: vue-tsc not working on windows
- feat: improve v-for type-checking
- chore: disabled declaration diagnostics for now to avoid monorepo performance issue
- fix: emit declaration diagnostics with declaration option
- chore: improve extra files watcher
- feat: watch extra files update
- fix: cannot find global properties if no
<script>
block - fix: project verification not working
- fix: cannot find name for text attribute
- feat: script refactors, source actions, organize imports support
- perf: improve monorepo memory using
- fix: text attribute auto-complete not working
- fix: declaration diagnostics missing
- fix: typescript diagnostic related Information unhandled
- perf: improve monorepo memory using
- feat: remove emit dts feature
- fix: props auto-complete not working for vue 2 and nuxt
- fix:
@vue/runtime-dom
missing checking not working
- revert: "fix: ignore script content if script src is exist"
- fix: script src mapping incorrect if script content is empty
- fix: ignore script content if script src is exist
- fix: semantic token incorrect if tag name in component context
- fix: quick fix not working in
<script setup>
if no import statement - fix: typescript code fixes throw if import path not exist
- fix: diagnosis not working for windows vscode 1.54.1
- fix: ts plugin vue files missing edge case
- fix: go to definition for 'vue' import not working
- fix: vue language service broke by vscode 1.54.1
- fix: 'vue' module auto-import broke by vscode 1.54.1 (ts 4.2.2)
- chore: improve vue 2 warning message (Thanks to @posva !)
- fix: code fix affect by virtual code
- fix: don't always ask refactoring when move vue file
- fix: ts auto-complete replace range incorrect
- feat: new apis for command line type-checking support (https://github.com/johnsoncodehk/vue-tsc)
- feat: support for event handlers in kebab-case
- feat: improve ts plugin status color
- feat: typescript quick fix
- fix: remove incorrect location from component options definition result
- fix: language server crash with
ref: in
- chore: update display name
- feat: added default
<style>
tag language config
- fix: textDocumet/formatting fails with stylus and sass
- feat: sass language support
- feat: stylus language support
- feat: auto-indent in template section support
- feat: multi-root workspaces support
- fix: should not throw when edit untitled vue documents
- fix: type checking doesn't work for components written in .ts files
- fix: can't reference .vue file out of rootDir
- fix: v-on type-checking not working with function assign
- feat: rename fail message
- fix: revert narrowed type patch for v-on
- fix: event type incorrect if given
null
(for example:emits: { foo: null }
)
- fix: ignore
postcss(unknownAtRules)
- fix: postcss completion word range
- fix: v-on expression should not affect variables types in template
- feat: postcss language support (required language-postcss for syntax highlighting)
- fix:
lang="ts"
missing should not throw error
- fix: nameless slot not working
- fix: definition selection range not working for global components
- fix: auto-complete word range incorrect
- feat: component tag auto-complete info in template
- feat: ts definition selection range
- fix: script block should not have emmet auto-complete
- perf: fix some performance issues
- fix: sometime emmet completion missing
- fix: auto-complete throw error #65
- fix: auto import
*.vue
not working
- fix:
<script setup>
unused report not working if no anyimport
statement - fix: narrowed type by v-if should not be widened in v-on
- fix:
:style
type check not working - fix: scoped class name references should not have hover info
- fix: tsconfig parsing for ts plugin incorrect
- feat:
vue.d.ts
emit support - fix: events type-checking not working for array emits define
- fix: slot name expression types incorrect
- feat: support slot name expression
- feat: show reload button on switch ts plugin
- fix: ts plugin status not sync on dropdown menu
- feat: props
@update
event support - feat:
v-model="..."
support - feat: ts plugin status bar item
- fix: improve events type-checking
- fix: tsconfig update not working for ts plugin
- fix: ref sugar variables hover info incorrect
- fix: services not working for hyphenate events
- fix: don't show confirm box if no import will change on move file
- fix: props rename references should keep with hyphenate
- feat: emit event type not matching warning
- feat: ts plugin support (default is disabled, run
Volar: Switch TS Plugin
to enable) - fix: typescript auto-complete should not replace suffix
- chore: emit overloads infer nums 2 -> 4
- chore: switch auto
.value
feature to default disabled
- fix:
.value
auto-complete should not occur at definition - fix: multi-line pug attribute not working
- fix: pug-html convert tool should not convert to pug class literal if exist illegal characters
- fix: inline css service broke in pug
- 🎉 feat: better pug support (https://github.com/vuejs/language-tools/projects/1#card-50201163)
- feat: improve html -> pug convert
- fix:
.value
auto-complete not working if typing inside()
- fix:
.value
auto-complete corner case - feat: enabled
.value
auto-complete in .ts
- feat: auto close tag delay 0ms -> 100ms
- feat: auto-complete ref value with
.value
(Experimental)
- feat: localized typescript diagnostics
- feat: report errors count with
Verify All Scripts
command - feat: show warning notification if project invalid (Thanks to @IWANABETHATGUY !)
- fix:
<script setup>
props rename broke - fix: inline css service broke
- fix: ref sugar broke in 0.20.0
- feat: import path renaming
- feat: refactor import path on rename file
- feat: options to disable codeLens
- feat: verification before renaming
- perf: incremental update server documents (Thanks to @IWANABETHATGUY !)
- fix: accurate ref sugar renaming
- fix: ref sugar should convert with type args
- fix: remove incorrect props hover info
- fix: file name parsing incorrect with
[]
characters
- feat: support global component with
component(..., defineAsyncComponent(...))
- feat: preview client improve
- fix: js files should handle in language server
- feat:
@vue-ignore
support - fix: don't diagnose
lang="sass"
,lang="stylus"
with css language
- feat: preview client (experimental)
- fix: ref sugar unused report incorrect with
noUnusedLocals
enabled
- fix: should not support old
<script setup>
declare props, emit, slots - fix: should not allow export keywords in
<script setup>
- fix: ref sugar right side expression services duplicate
- fix: ref sugar references semantic token incorrect
- feat: ref sugar hover info add dollar variable
- fix: ref sugar autocomplete not working for
ref: { | } = foo()
- fix: ref sugar goto definition not working for
ref: { | } = foo()
- fix: ref sugar semantic token not working
- fix: language server broke with monorepo tsconfig.json (outDir + rootDir + composite/incremental)
- feat: show underscore with css scoped classes
- fix: css scoped classes definition goto wrong place if define in import file
- fix: FunctionalComponent services not working with
setup()
return
- feat:
<script src>
support
- fix: prop types incorrect if duplicate name with HTMLAttributes
- fix: symbols outline incorrect
- feat: add split editors button
- feat: improve split editors
- fix:
<template lang="pug">
block folding not working with>
character
- feat: split editors
- fix: component props auto complete broke
- fix: interpolation formatting incorrect edge case
- chore: remove unneeded files to reduce extension size
- fix: ref sugar variables unused report incorrect
- fix:
@click
type check not working for non native elements
- fix: css class references codeLens broke
- feat: unsupported workspaceExtensions formatter
- feat: unsupported old
<script setup>
- fix: references codeLens should not counting itself
- fix: hyphenate format slot name have duplicate references codeLens
- fix:
<script setup>
unused checking not working for"noUnusedLocals": true
- feat: server init progress
- feat: vue block completion
- fix: tsconfig.json update not working
- fix: __VLS_GlobalComponents not working if no
<script>
block - fix: element tag mapping incorrect corner case
- feat: codeLens for
app.component(...)
- feat: codeLens for slots
- fix: css codeLens location incorrect corner case
- fix:
<script setup>
unused variables report broke with html
- fix:
<script setup>
variables should report unused when use as component
- feat: unused variables report for
<script setup>
- fix:
<script setup>
imports should not have global completion
- feat: pnpm support
- feat: unlimited emits overloads support
- fix: formatting remove
export default {}
if exist two<script>
block
- fix: ref sugar variable define diagnostic not working
- fix:
ref: foo = false
should beboolean
notfalse
type in template - fix: ref sugar convert tool fail with
()
- fix: props services fail for
DefineComponent<...>
declare component
- fix: folding ranges not working in
<script setup>
block
- feat: improve pug diagnosis
- fix: find emits references not working with hyphenate
- fix: hover info not working for hyphenate component tag tail
- pert: faster script setup gen
- perf: faster pug mapper
- chore: change component tag hover info
- fix: filter same html tag in completion
- fix: ctx properties types incorrect corner cases
- fix: should not detect all ctx properties as component
- fix:
@click
event type check broke
- feat: rollback typescript diagnostic modes
- perf: faster diagnostics
- feat(experiment): added a new typescript diagnostic mode and default enabled (not prompt for unused variables)
- fix:
foo=""
attribute should not detect astrue
type
- fix: script formatting broke
- fix: when return
foo: foo as true
in setup(), template context should getfoo: true
notfoo: boolean
- fix: interpolations formatting indent broke
- fix: interpolations formatting broke
- fix: props missing checking not working for non hyphenate component
- perf: emit overloads support nums 16 -> 4 (faster template diagnostics when using v-on)
- perf: faster template diagnostics
- feat: Linked Editing
- fix: script not found error not working for
<script setup>
- chore: rename extension in marketplace #35
-
fix: ref sugar variable renaming no effect to template
-
fix:
v-else-if
semantic token -
perf: split
<script>
and<template>
to speed up current editing block diagnosticswhen editing
<script>
,<template>
block delay 1000ms make diagnosiswhen editing
<template>
,<script>
block delay 1000ms make diagnosis
- perf: faster default formatter
- perf: faster diagnostics
- fix: can't disable html mirror cursor
- feat: improve folding range
- feat: improve html mirror cursor
- feat: improve default formatter
- fix:
<script setup>
crash corner cases - fix: diagnostic feature was accidentally disabled in v0.17.1
- perf: prevent auto close tag blocked by autocomplete
- perf: faster semantic tokens
- feat: ts semantic tokens
- feat: faster auto close tag
- chore: remove icon avoid it like a virus in marketplace
- perf: prevent semantic tokens request block autocomplete request (occurred in 0.16.4)
- feat: improve ts autocomplete
- feat: pure type defineEmit() syntax support
- feat: increase support emits overloads nums to 16
- fix: pure type defineProps properties required incorrect
- fix: monorepo services can't update cross root scripts
- fix:
<script setup>
formatting broke in 0.16.13
- fix: crash if allowJs not set and working on js script block
- fix: crash with user action when server not ready
- feat: html mirror cursor
- feat: support directives syntax
:=
,@=
,#=
- fix: v-slot bind properties missing attribute values
- fix: template validation broke with v-slot bind properties
- fix: slot services disturbed slot element hover info
- feat: reference, rename, definition support to js
- feat: template validation support to js
- fix: should not error when css class not exist
- fix: inline style hover info wrong mapping
- feat: slot name services (find references, goto definition, diagnostic, completion, hover info)
- fix: call graph links incomplete
- fix: find references crash in node_modules files
- feat: restart server command
- fix: auto import not working for .vue files
- fix: can't use export default with
<script>
when<script setup>
exist - fix: auto import items should not show virtual files
- fix: style attr services broke
- fix: v-for elements types incorrect
- refactor: sensitive semantic tokens update
- feat: inline css service within
<template>
- fix:
<script setup>
formatting wrongly replaceref:
toref
- fix: fix some Call Hierarchy failed cases
- perf: faster typescript language service for new
<script setup>
- feat: Call Hierarchy support
- feat: auto declare
__VLS_GlobalComponents
byapp.component()
calls