diff --git a/archduino-guide.md b/archduino-guide.md index 6029c8e..fd2bddd 100644 --- a/archduino-guide.md +++ b/archduino-guide.md @@ -298,29 +298,27 @@ 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", - "--clang-tidy", - "--header-insertion=iwyu", - "--completion-style=detailed", - }, - }, - }, - }, + cmd = { + "clangd", + "--background-index", + "--clang-tidy", + "--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 diff --git a/lib/neovim.sh b/lib/neovim.sh index 2acecdf..2f65213 100644 --- a/lib/neovim.sh +++ b/lib/neovim.sh @@ -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"