Files
dotfiles/docs/superpowers/specs/2026-06-27-neovim-vue-language-server-design.md
T

1.4 KiB

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.