From 9d0051e6b4170851ebcc09e7ff44097818c8e1dc Mon Sep 17 00:00:00 2001 From: seth Date: Sun, 17 Sep 2023 04:54:00 -0400 Subject: start using willruggiano/neovim.nix --- plugins/lspconfig.lua | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 plugins/lspconfig.lua (limited to 'plugins/lspconfig.lua') diff --git a/plugins/lspconfig.lua b/plugins/lspconfig.lua new file mode 100644 index 0000000..a17d5ab --- /dev/null +++ b/plugins/lspconfig.lua @@ -0,0 +1,49 @@ +return function() + local sources = { + ["bashls"] = "bash-language-server", + ["clangd"] = "clangd", + ["eslint"] = "eslint", + ["nil_ls"] = "nil", + ["pyright"] = "pyright-langserver", + ["rust_analyzer"] = "rust-analyzer", + ["tsserver"] = "typescript-language-server", + } + + local capabilities = vim.tbl_deep_extend( + "force", + require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()), + { workspace = { didChangeWatchedFiles = { dynamicRegistration = true } } } + ) + + local all_config = { + capabilities = capabilities, + } + + local servers = {} + for server, binary in pairs(sources) do + if vim.fn.executable(binary) == 1 then + servers[server] = all_config + end + end + + servers["lua_ls"] = { + capabilities = capabilities, + settings = { + Lua = { + runtime = { + version = "LuaJIT", + }, + diagnostics = { + globals = { "vim" }, + }, + workspace = { + library = vim.api.nvim_get_runtime_file("", true), + }, + }, + }, + } + + for server, settings in pairs(servers) do + require("lspconfig")[server].setup(settings) + end +end -- cgit v1.2.3