fix(neovim): migrate LSP config to native vim.lsp.config API
Replace deprecated require("lspconfig") setup with the Neovim 0.11+
native vim.lsp.config/vim.lsp.enable API. Clangd config now lives in
lsp/clangd.lua instead of the old plugins/lspconfig.lua +
configs/lspconfig.lua pair.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -298,15 +298,10 @@ return {
|
||||
}
|
||||
```
|
||||
|
||||
Create `~/.config/nvim/lua/plugins/lsp.lua`:
|
||||
Create `~/.config/nvim/lsp/clangd.lua` (native Neovim 0.11+ LSP config):
|
||||
|
||||
```lua
|
||||
return {
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
servers = {
|
||||
clangd = {
|
||||
cmd = {
|
||||
"clangd",
|
||||
"--background-index",
|
||||
@@ -314,13 +309,16 @@ return {
|
||||
"--header-insertion=iwyu",
|
||||
"--completion-style=detailed",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
filetypes = { "c", "cpp", "objc", "objcpp", "cuda", "arduino" },
|
||||
}
|
||||
```
|
||||
|
||||
Enable the server (e.g. in `init.lua` or a plugin file):
|
||||
|
||||
```lua
|
||||
vim.lsp.enable("clangd")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Arduino CLI
|
||||
|
||||
@@ -143,34 +143,11 @@ return {
|
||||
}
|
||||
LUA
|
||||
|
||||
# ── LSP (clangd) ───────────────────────────────────────────────
|
||||
mkdir -p "$NVIM_CFG/lua/configs"
|
||||
# ── LSP (clangd) — native vim.lsp.config (Neovim 0.11+) ──────
|
||||
mkdir -p "$NVIM_CFG/lsp"
|
||||
|
||||
cat >"$NVIM_CFG/lua/plugins/lspconfig.lua" <<'LUA'
|
||||
cat >"$NVIM_CFG/lsp/clangd.lua" <<'LUA'
|
||||
return {
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
config = function()
|
||||
require("nvchad.configs.lspconfig").defaults()
|
||||
require "configs.lspconfig"
|
||||
end,
|
||||
},
|
||||
}
|
||||
LUA
|
||||
|
||||
cat >"$NVIM_CFG/lua/configs/lspconfig.lua" <<'LUA'
|
||||
local configs = require "nvchad.configs.lspconfig"
|
||||
|
||||
local on_attach = configs.on_attach
|
||||
local on_init = configs.on_init
|
||||
local capabilities = configs.capabilities
|
||||
|
||||
local lspconfig = require "lspconfig"
|
||||
|
||||
lspconfig.clangd.setup {
|
||||
on_init = on_init,
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
cmd = {
|
||||
"clangd",
|
||||
"--background-index",
|
||||
@@ -178,9 +155,19 @@ lspconfig.clangd.setup {
|
||||
"--header-insertion=iwyu",
|
||||
"--completion-style=detailed",
|
||||
},
|
||||
filetypes = { "c", "cpp", "objc", "objcpp", "cuda", "arduino" },
|
||||
}
|
||||
LUA
|
||||
|
||||
# Enable clangd via native API
|
||||
cat >"$NVIM_CFG/lua/plugins/lspconfig.lua" <<'LUA'
|
||||
vim.lsp.enable("clangd")
|
||||
return {}
|
||||
LUA
|
||||
|
||||
# Clean up legacy configs/lspconfig.lua if present
|
||||
rm -f "$NVIM_CFG/lua/configs/lspconfig.lua"
|
||||
|
||||
# ── Keymaps ─────────────────────────────────────────────────────
|
||||
cat >"$NVIM_CFG/lua/mappings.lua" <<'LUA'
|
||||
require "nvchad.mappings"
|
||||
|
||||
Reference in New Issue
Block a user