diff options
| author | Arpit Chakladar <arpitchakladar@proton.me> | 2026-04-24 01:48:30 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar@proton.me> | 2026-04-24 01:48:30 +0530 |
| commit | 3e232a2bc7f5c8ea33804be1ea071a91c5f98055 (patch) | |
| tree | f772b5d7d393cacf708d845acb75b55c12d3e625 /modules/programs/nixvim/plugins/lsp.nix | |
| parent | 606716e0a4b8cbeb9076fb88b6b92664a5a24081 (diff) | |
| download | home-manager-config-3e232a2bc7f5c8ea33804be1ea071a91c5f98055.tar.gz home-manager-config-3e232a2bc7f5c8ea33804be1ea071a91c5f98055.zip | |
replacing tools with programs to be more consistent with config options
Diffstat (limited to 'modules/programs/nixvim/plugins/lsp.nix')
| -rw-r--r-- | modules/programs/nixvim/plugins/lsp.nix | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/modules/programs/nixvim/plugins/lsp.nix b/modules/programs/nixvim/plugins/lsp.nix new file mode 100644 index 0000000..dbe66a8 --- /dev/null +++ b/modules/programs/nixvim/plugins/lsp.nix @@ -0,0 +1,91 @@ +{ config, lib, ... }: + +# LSP - Language Server Protocol configuration (nvim-lspconfig) +{ + config.programs.nixvim = lib.mkIf config.programs.nixvim.enable { + plugins.lsp = { + enable = true; + inlayHints = true; + autoLoad = true; + keymaps.lspBuf = { + K = "hover"; + gD = "references"; + gd = "definition"; + gi = "implementation"; + gt = "type_definition"; + }; + servers = { + nil_ls = { + enable = true; + }; + lua_ls = { + enable = true; + package = null; + }; + nixd = { + enable = true; + package = null; + }; + pyright = { + enable = true; + package = null; + }; + ts_ls = { + enable = true; + package = null; + }; + clangd = { + enable = true; + package = null; + }; + jsonls = { + enable = true; + package = null; + }; + yamlls = { + enable = true; + package = null; + }; + bash-language-server = { + enable = true; + package = null; + }; + gopls = { + enable = true; + package = null; + }; + }; + }; + + diagnostic = { + settings = { + virtual_text = false; + signs = true; + underline = true; + update_in_insert = false; + float = { + border = "rounded"; + source = true; # Show which LSP the diagnostic is from + header = ""; + prefix = ""; + }; + }; + }; + + # Show diagnostics float on cursor hold + autoCmd = [ + { + event = [ "CursorHold" ]; + pattern = "*"; + callback.__raw = '' + function() + vim.diagnostic.open_float(nil, { focus = false }) + end + ''; + } + ]; + + # How long before CursorHold fires (in ms) + opts.updatetime = 500; + }; +} |
