diff options
| author | seth <[email protected]> | 2023-09-17 04:54:00 -0400 |
|---|---|---|
| committer | seth <[email protected]> | 2023-10-07 12:55:41 -0400 |
| commit | 9d0051e6b4170851ebcc09e7ff44097818c8e1dc (patch) | |
| tree | 067e1d6b745fc61aeb9b885439482f946bbdf2fe /plugins/lspconfig.lua | |
| parent | e910460767dd835c7fb8aa7a59082e645c207cbd (diff) | |
start using willruggiano/neovim.nix
Diffstat (limited to 'plugins/lspconfig.lua')
| -rw-r--r-- | plugins/lspconfig.lua | 49 |
1 files changed, 49 insertions, 0 deletions
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 |
