The Wire · Showcase
VUE LANGUAGE TOOLS FIXES STALE CACHING
By RepoJournal · Filed · About Vue.js
Vue's language tooling is finally reacting to template changes, killing the stale casing cache that has been breaking class and prop detection in Volar.
The Vue language server now invalidates its tag and attribute casing detection cache whenever the template changes [1], fixing a long-standing bug where renamed components and attributes wouldn't update in the editor. A companion PR makes casing detection itself fully reactive, so the language service no longer relies on stale computed values [2]. This is exactly what it sounds like if you've been fighting with Volar showing outdated prop suggestions after an edit. Meanwhile, VitePress quashes a dev-mode SSR warning by switching the sidebar watch source to a proper getter [3], and the project modernizes its JSON imports to use attributes, silencing the build-time deprecation warning [4]. Over on the core repo, pnpm's trustPolicy gets a defense-in-depth upgrade that blocks package downgrades [5], a focused follow-up after the maintainers declined a broader supply-chain proposal. Finally, the Vue VSCode extension's welcome page becomes configurable , and the remaining internal flag rename lands, cleaning up legacy naming .
One email a day. Unsubscribe in one click.
Keep up with Vue.js in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → If you use Volar, watch for the casing cache fix landing in your next language-tools update and test template-driven prop updates vuejs/language-tools [monitor]
- → When you next bump VitePress, verify your dev SSR logs are free of the invalid watch source warning vuejs/vitepress [monitor]
- → Notice the pnpm trustPolicy change in Vue core's pnpm-workspace.yaml and consider enabling no-downgrade in your own monorepos vuejs/core [plan]
References
- [1] fix(language-service): invalidate tag/attr casing detection cache on template change ↗ vuejs/language-tools
- [2] refactor(language-service): make name casing detection reactive ↗ vuejs/language-tools
- [3] fix(theme): use a getter as VPSidebar's open watch source vuejs/vitepress
- [4] refactor: import json with attributes ↗ vuejs/vitepress
- [5] chore: enable pnpm trustPolicy: no-downgrade (#15330) vuejs/core