diff options
| author | Arpit Chakladar <arpitchakladar@proton.me> | 2026-04-15 14:40:47 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar@proton.me> | 2026-04-15 14:40:47 +0530 |
| commit | 36f3c952e4c32fd441987fdc8246f75de82815ee (patch) | |
| tree | 7c0658b32998d973b5001ebaea5a3d62479a55f6 | |
| parent | 57ea5b798fb05b81e845015f2906796bcf5b3346 (diff) | |
| download | home-manager-config-36f3c952e4c32fd441987fdc8246f75de82815ee.tar.gz home-manager-config-36f3c952e4c32fd441987fdc8246f75de82815ee.zip | |
autoshowing dignostics for lsp neovim (nixvim)
| -rw-r--r-- | modules/tools/nixvim/plugins/lsp.nix | 127 |
1 files changed, 80 insertions, 47 deletions
diff --git a/modules/tools/nixvim/plugins/lsp.nix b/modules/tools/nixvim/plugins/lsp.nix index 07f4073..1621d43 100644 --- a/modules/tools/nixvim/plugins/lsp.nix +++ b/modules/tools/nixvim/plugins/lsp.nix @@ -2,56 +2,89 @@ # LSP - Language Server Protocol configuration (nvim-lspconfig) { - config.programs.nixvim.plugins.lsp = lib.mkIf config.tools.nixvim.enable { - enable = true; - inlayHints = 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; + config.programs.nixvim = lib.mkIf config.tools.nixvim.enable { + plugins.lsp = { + enable = true; + inlayHints = true; + keymaps.lspBuf = { + K = "hover"; + gD = "references"; + gd = "definition"; + gi = "implementation"; + gt = "type_definition"; }; - jsonls = { - enable = true; - package = null; + 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; + }; }; - 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; }; } |
