diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-06-04 15:25:48 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-06-04 18:38:00 +0800 |
commit | 166bdbc8bfb89b007b1a9ede885af5582074481c (patch) | |
tree | 1fce9604b083d0e13d3b64815642f40639ba8546 /store/home/config/nvim/lua/setup/lsp.lua | |
parent | 447b2d7b59333766ddc434e7a48320ed555bb8fd (diff) | |
download | crupest-166bdbc8bfb89b007b1a9ede885af5582074481c.tar.gz crupest-166bdbc8bfb89b007b1a9ede885af5582074481c.tar.bz2 crupest-166bdbc8bfb89b007b1a9ede885af5582074481c.zip |
config(nvim): new lsp config and use neo-tree.
Diffstat (limited to 'store/home/config/nvim/lua/setup/lsp.lua')
-rw-r--r-- | store/home/config/nvim/lua/setup/lsp.lua | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/store/home/config/nvim/lua/setup/lsp.lua b/store/home/config/nvim/lua/setup/lsp.lua new file mode 100644 index 0000000..15deacd --- /dev/null +++ b/store/home/config/nvim/lua/setup/lsp.lua @@ -0,0 +1,67 @@ +-- spellchecker: words denols luals + +vim.lsp.config("*", { + capabilities = vim.tbl_extend("force", + vim.lsp.protocol.make_client_capabilities(), + require("cmp_nvim_lsp").default_capabilities() + ) +}) + +local function setup_clangd() + local clangd = "clangd" + local brew_clangd_path = "/usr/local/opt/llvm/bin/clangd" + + if vim.uv.fs_stat(brew_clangd_path) ~= nil then + clangd = brew_clangd_path + end + + vim.lsp.config("clangd", { + cmd = { clangd } + }) + local old_on_attach = vim.lsp.config.clangd.on_attach + vim.lsp.config.clangd.on_attach = function(client, bufnr) + if old_on_attach then old_on_attach(client, bufnr) end + vim.keymap.set('n', 'grs', "<cmd>ClangdSwitchSourceHeader<cr>", { + buffer = bufnr + }) + end +end + +local function setup_luals() + vim.lsp.config("lua_ls", { + settings = { + Lua = { + runtime = { + version = "LuaJIT" + }, + diagnostics = { + globals = { "vim" }, + }, + workspace = { + library = { + [vim.fn.expand "$VIMRUNTIME/lua"] = true, + [vim.fn.expand "$VIMRUNTIME/lua/vim/lsp"] = true, + [vim.fn.stdpath "data" .. "/lazy/lazy.nvim/lua/lazy"] = true, + }, + maxPreload = 100000, + preloadFileSize = 10000, + }, + }, + }, + }) +end + +local function setup() + vim.lsp.enable('denols') + vim.lsp.enable('cmake') + vim.lsp.enable('bashls') + vim.lsp.enable('html') + vim.lsp.enable('cssls') + setup_clangd() + setup_luals() +end + + +return { + setup = setup +} |