diff options
| author | seth <[email protected]> | 2023-12-18 01:28:42 -0500 |
|---|---|---|
| committer | seth <[email protected]> | 2023-12-18 02:18:35 -0500 |
| commit | 8faa242f21648e52a6bbdfa803fd4ea1b0e347e0 (patch) | |
| tree | eff6694cefb2f821bf19b0d8cb3d97bf48cb15b9 /config/plugins/lsp.nix | |
| parent | 9fe8afd0c5f2b439176728d8863570bf22614dbd (diff) | |
port to nixvim
Diffstat (limited to 'config/plugins/lsp.nix')
| -rw-r--r-- | config/plugins/lsp.nix | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/config/plugins/lsp.nix b/config/plugins/lsp.nix new file mode 100644 index 0000000..c2648db --- /dev/null +++ b/config/plugins/lsp.nix @@ -0,0 +1,54 @@ +{lib, ...}: { + plugins.lsp = { + enable = true; + + capabilities = '' + capabilities = vim.tbl_deep_extend( + "force", + require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()), + { workspace = { didChangeWatchedFiles = { dynamicRegistration = true } } } + ) + ''; + + keymaps = { + diagnostic = { + "<leader>e" = "open_float"; + "[d" = "goto_prev"; + "]d" = "goto_next"; + "<leader>u" = "setloclist"; + }; + }; + + servers = let + withDefaultOpts = lib.genAttrs [ + "bashls" + "lua-ls" + "nil_ls" + ] (_: {enable = true;}); + + optionalOpts = { + enable = true; + installLanguageServer = false; + autostart = false; + }; + + optional = lib.genAttrs [ + "clangd" + "eslint" + "pyright" + "rust-analyzer" + "tsserver" + ] (_: optionalOpts); + in + withDefaultOpts + // optional + // { + rust-analyzer = + optionalOpts + // { + installRustc = false; + installCargo = false; + }; + }; + }; +} |
