# local-lsp marketplace Local Claude Code marketplace holding `lua-lsp-local` — a `lua-language-server` config that roots at `~/.config/nvim` (via `.lsp.json` `workspaceFolder`) with the Neovim runtime as `workspace.library`, so `vim` resolves and the `$HOME`-root diagnostic flood is gone. Why this exists: the official `lua-lsp@claude-plugins-official` roots `lua_ls` at `$HOME`, which ignored `~/.config/nvim/.luarc.json` and flooded `Undefined global vim` (no IntelliSense). See memory `reference_claude_lua_lsp.md`. ## Install / reproduce (fresh machine) `settings.json` (`enabledPlugins`, `extraKnownMarketplaces`) carries the result, but on a clean setup run, in order: ```sh claude plugin validate /home/tvanbesi/.claude/lsp-marketplace/plugins/lua-lsp-local claude plugin marketplace add /home/tvanbesi/.claude/lsp-marketplace claude plugin install lua-lsp-local@local-lsp # user scope claude plugin disable lua-lsp@claude-plugins-official # one server owns .lua ``` Then restart the session (LSP servers only start fresh on launch). ## After editing this plugin Claude copies the plugin to its cache on install; source edits don't apply until: ```sh claude plugin marketplace update local-lsp claude plugin install lua-lsp-local@local-lsp # reinstall ``` (or bump `version` in `plugins/lua-lsp-local/.claude-plugin/plugin.json`), then restart. ## Verify Throwaway-edit a `.lua` file under `~/.config/nvim`; the Claude `lua_ls` (`ps`-child of `claude`) log should show `rootUri = file:///home/tvanbesi/.config/nvim` and no `Undefined global vim`.