Document Neovim Vue language server design

This commit is contained in:
2026-06-27 17:06:13 +02:00
parent ebe2ec9d38
commit 20f4d97cc4
@@ -0,0 +1,33 @@
# Neovim Vue Language Server Design
## Goal
Add current Vue 3 language-server support without changing language-server behavior in non-Vue JavaScript and TypeScript projects.
## Design
- Keep `ts_ls` enabled for JavaScript and TypeScript files.
- Enable `vue_ls` for Vue single-file components.
- Use nvim-lspconfig's current `vue_ls` configuration and its built-in request forwarding to `ts_ls`.
- Let Mason install the `vue-language-server` package through the existing automatic-installation integration.
- Extend the local Mason health check so Vue's runtime requirement and executable are visible.
- Do not reproduce the tutorial's Volar Take Over Mode because Vue Language Server 3 removed it.
- Do not add Tailwind support in this change.
## Files
- Update `nvim/lua/tracer/plugins/lspconfig.lua` to enable `vue_ls`.
- Update `nvim/lua/mason/health.lua` to mention Vue Language Server and check `vue-language-server`.
## Verification
- Confirm the pre-change check fails because `vue_ls` is not enabled.
- Confirm Neovim starts headlessly without configuration errors after the change.
- Confirm `vue_ls` appears in Neovim's enabled LSP configurations.
- Confirm Mason installs `vue-language-server` and its executable is available.
- Preserve the existing `ts_ls` configuration for non-Vue projects.
## Constraints
- Preserve unrelated working-tree changes.
- Use the Neovim 0.12 `vim.lsp.enable()` API already used by this configuration.