- 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 (vuejs#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 (vuejs#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 (vuejs#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 (vuejs#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 (vuejs#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 (vuejs#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 (vuejs#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 (vuejs#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 (vuejs#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 (vuejs#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/johnsoncodehk/volar/commit/07f3bd55b6bdf3875a60796f7c9eb9a838eed463) - perf: cache
fileExists
,directoryExists
result in language server (https://github.com/johnsoncodehk/volar/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/johnsoncodehk/volar-plugins/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 vuejs#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 vuejs#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/johnsoncodehk/volar/tree/master/packages/vue-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: vuejs#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/johnsoncodehk/volar#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/johnsoncodehk/volar/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