From 5ee261b4b7b054b758080afbb0bbfcb3ce26fb88 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Fri, 24 Apr 2026 01:55:05 +0530 Subject: fixed infinite recusion caused due to nixvim configs --- modules/programs/nixvim/default.nix | 37 +++++++-- modules/programs/nixvim/plugins/lsp.nix | 129 ++++++++++++-------------------- 2 files changed, 79 insertions(+), 87 deletions(-) (limited to 'modules/programs/nixvim') diff --git a/modules/programs/nixvim/default.nix b/modules/programs/nixvim/default.nix index 1a66b47..57c6697 100644 --- a/modules/programs/nixvim/default.nix +++ b/modules/programs/nixvim/default.nix @@ -8,11 +8,7 @@ ./plugins ]; - options.programs.nixvim = { - enable = lib.mkEnableOption "Enables nixvim."; - }; - - config = lib.mkIf config.programs.nixvim.enable { + config = { programs.nixvim = { defaultEditor = true; opts = { @@ -26,6 +22,7 @@ laststatus = 3; foldlevel = 99; clipboard = "unnamedplus"; + updatetime = 500; }; clipboard.providers.xclip.enable = true; extraConfigLuaPre = with config.scheme.withHashtag; '' @@ -73,9 +70,37 @@ byteCompileLua.enable = true; combinePlugins.enable = true; }; + + 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 + ''; + } + ]; }; - home.sessionVariables = { + home.sessionVariables = lib.mkIf config.programs.nixvim.enable { EDITOR = lib.mkForce (lib.getExe config.programs.nixvim.package); MANPAGER = "${lib.getExe config.programs.nixvim.package} +Man!"; }; diff --git a/modules/programs/nixvim/plugins/lsp.nix b/modules/programs/nixvim/plugins/lsp.nix index dbe66a8..7069b97 100644 --- a/modules/programs/nixvim/plugins/lsp.nix +++ b/modules/programs/nixvim/plugins/lsp.nix @@ -2,90 +2,57 @@ # 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"; + config.programs.nixvim.plugins.lsp = lib.mkIf config.programs.nixvim.enable { + enable = true; + inlayHints = true; + autoLoad = true; + keymaps.lspBuf = { + K = "hover"; + gD = "references"; + gd = "definition"; + gi = "implementation"; + gt = "type_definition"; + }; + servers = { + nil_ls = { + enable = true; }; - 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; - }; + lua_ls = { + 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 = ""; - }; + 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; }; }; - - # 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; }; } -- cgit v1.2.3