$ the-wire · showcase
Reduced focus mode overhead in Vue language tools
By RepoJournal · Filed · About Vue.js
Vue language-tools cuts unnecessary folding-range requests when focus mode is disabled, improving editor responsiveness.
The Vue language-tools extension now checks the `vue.editor.focusMode` setting before sending `textDocument/foldingRange` requests, eliminating overhead for users with focus mode off [1]. Previously, every selection change in a `.vue` file triggered an unnecessary request that could delay completions and diagnostics; the change also stops a 24ms fade-animation interval that ran for the entire extension lifetime [1]. Separately, two codegen sites in language-core removed blanket `@ts-ignore` comments, replacing them with explicit handling: hoisted template refs now emit `${hoistVar} = ${originalVar}!` with a non-null assertion to suppress TS2454, and similar cleanup applies to other synthesized diagnostics [2][3]. The TypeScript plugin no longer aborts reference span fix-up at style-less files, and language-core now properly consumes synthesized `$event` in compound event handlers [4][5]. In the docs, VitePress fixed its appearance toggle example, closing an open issue [6]. Infra updates include an automated resources refresh in eslint-plugin-vue and a consistency pass on its changeset wording [7][8]. All quiet on the Vue front; these are routine improvements with no breaking changes.
Action items
- → Update Volar to a build containing these fixes if you use focus mode off vuejs/language-tools [monitor]
References
- [1] perf(vscode): reduce focus mode overhead ↗ vuejs/language-tools
- [2] fix(language-core): eliminate synthesized ignore in codegen ↗ vuejs/language-tools
- [3] fix(language-core): eliminate synthesized ignore in codegen (#6191) ↗ vuejs/language-tools
- [4] fix(typescript-plugin): don't abort reference span fix-up at style-less files (#6192) ↗ vuejs/language-tools
- [5] fix(language-core): consume synthesized $event in compound event handlers (#6193) ↗ vuejs/language-tools
- [6] docs: fix the appearance toggle example ↗ vuejs/vitepress
- [7] Update resources ↗ vuejs/eslint-plugin-vue
- [8] Make wording in changeset more consistent ↗ vuejs/eslint-plugin-vue