Skip to main content

Posts

Showing posts with the label Lua

Neovim Lua LSP 2025: Fixing 'Client Not Attached' and `vim.lsp.config` Errors

  You just updated Neovim to the latest stable release (v0.10.x or the v0.11 nightly). You launch your editor, open a Rust or TypeScript file, and expect the usual flood of diagnostics and semantic highlighting. Instead, you get silence. Or worse, you invoke a keymap and get a stack trace:   E5108: Error executing lua ... attempt to index a nil value . The ecosystem is shifting. The transition from plugin-heavy LSP handling to Neovim's native  vim.lsp  implementation has reached a maturity point where legacy configurations are no longer just "deprecated"—they are breaking. This post dissects why your  on_attach  logic is failing and provides a robust, Principal-grade Lua implementation to fix it using the modern  LspAttach  event architecture. The Root Cause: Event Decoupling and API Deprecation Two specific changes are responsible for 90% of LSP failures in 2024/2025 configurations: 1. The Death of  vim.lsp.get_active_clients In Neovim v0.10...