diff options
| author | Arpit Chakladar <arpitchakladar@gmail.com> | 2026-09-19 01:40:50 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar@gmail.com> | 2026-09-19 01:40:50 +0530 |
| commit | baae94abb6a9a03914216f0f373b7b0f6b0207bd (patch) | |
| tree | 34f0b938f0b34b0c3723ed929246f71f9a2d396e /modules/development/nixvim | |
| parent | 6b0161b2639bb49e270754e90f4f8a47311c5198 (diff) | |
| download | home-manager-config-baae94abb6a9a03914216f0f373b7b0f6b0207bd.tar.gz home-manager-config-baae94abb6a9a03914216f0f373b7b0f6b0207bd.zip | |
chore: removed all raw string configurations options in favor of files
Moved all configurations which were previously raw strings chunks, for
options that the home-manager options didn't provide, into files for
that specific configuration and reading there contents instead (with
string replacement for passing information from the rest of the
configuration).
Diffstat (limited to 'modules/development/nixvim')
24 files changed, 195 insertions, 205 deletions
diff --git a/modules/development/nixvim/default.nix b/modules/development/nixvim/default.nix index 74b0c1f..00712cc 100644 --- a/modules/development/nixvim/default.nix +++ b/modules/development/nixvim/default.nix @@ -78,26 +78,6 @@ in }; }; }; - - autoCmd = [ - { - event = [ "CursorHold" ]; - pattern = "*"; - callback.__raw = '' - function() - vim.diagnostic.open_float(nil, { focus = false }) - end - ''; - } - { - event = [ "FileType" ]; - pattern = [ - "yaml" - "yml" - ]; - command = "setlocal expandtab shiftwidth=2 softtabstop=2 tabstop=2"; - } - ]; }; }; } diff --git a/modules/development/nixvim/plugins/cmp.nix b/modules/development/nixvim/plugins/cmp/default.nix index b2347ba..4698801 100644 --- a/modules/development/nixvim/plugins/cmp.nix +++ b/modules/development/nixvim/plugins/cmp/default.nix @@ -16,15 +16,7 @@ "<C-u>" = "cmp.mapping.scroll_docs(-4)"; # scroll docs up "<C-d>" = "cmp.mapping.scroll_docs(4)"; # scroll docs down - "<Escape>" = '' - cmp.mapping(function(fallback) - if cmp.visible() then - cmp.abort() - else - fallback() - end - end, { "i" }) - ''; + "<Escape>" = builtins.readFile ./escape.lua; }; sources = [ { name = "nvim_lsp"; } diff --git a/modules/development/nixvim/plugins/cmp/escape.lua b/modules/development/nixvim/plugins/cmp/escape.lua new file mode 100644 index 0000000..e215bc7 --- /dev/null +++ b/modules/development/nixvim/plugins/cmp/escape.lua @@ -0,0 +1,7 @@ +cmp.mapping(function(fallback) + if cmp.visible() then + cmp.abort() + else + fallback() + end +end, { "i" }) diff --git a/modules/development/nixvim/plugins/comment.nix b/modules/development/nixvim/plugins/comment/default.nix index 8c69218..8c69218 100644 --- a/modules/development/nixvim/plugins/comment.nix +++ b/modules/development/nixvim/plugins/comment/default.nix diff --git a/modules/development/nixvim/plugins/dap-ui/dap-ui.lua b/modules/development/nixvim/plugins/dap-ui/dap-ui.lua new file mode 100644 index 0000000..bcf4fe3 --- /dev/null +++ b/modules/development/nixvim/plugins/dap-ui/dap-ui.lua @@ -0,0 +1,10 @@ +local dap, dapui = require("dap"), require("dapui") +dap.listeners.after.event_initialized["dapui_config"] = function() + dapui.open() +end +dap.listeners.before.event_terminated["dapui_config"] = function() + dapui.close() +end +dap.listeners.before.event_exited["dapui_config"] = function() + dapui.close() +end diff --git a/modules/development/nixvim/plugins/dap-ui.nix b/modules/development/nixvim/plugins/dap-ui/default.nix index cc25d2d..eb83609 100644 --- a/modules/development/nixvim/plugins/dap-ui.nix +++ b/modules/development/nixvim/plugins/dap-ui/default.nix @@ -21,5 +21,8 @@ options.desc = "Debug: Eval Expression Under Cursor"; } ]; + + # Auto open/close dap-ui with the debug session lifecycle + extraConfigLua = builtins.readFile ./dap-ui.lua; }; } diff --git a/modules/development/nixvim/plugins/dap-virtual-text.nix b/modules/development/nixvim/plugins/dap-virtual-text/default.nix index 4fea5ca..4fea5ca 100644 --- a/modules/development/nixvim/plugins/dap-virtual-text.nix +++ b/modules/development/nixvim/plugins/dap-virtual-text/default.nix diff --git a/modules/development/nixvim/plugins/dap.nix b/modules/development/nixvim/plugins/dap/default.nix index 02bffa6..97452ac 100644 --- a/modules/development/nixvim/plugins/dap.nix +++ b/modules/development/nixvim/plugins/dap/default.nix @@ -63,19 +63,5 @@ options.desc = "Debug: Toggle REPL"; } ]; - - # Auto open/close dap-ui with the debug session lifecycle - extraConfigLua = '' - local dap, dapui = require("dap"), require("dapui") - dap.listeners.after.event_initialized["dapui_config"] = function() - dapui.open() - end - dap.listeners.before.event_terminated["dapui_config"] = function() - dapui.close() - end - dap.listeners.before.event_exited["dapui_config"] = function() - dapui.close() - end - ''; }; } diff --git a/modules/development/nixvim/plugins/default.nix b/modules/development/nixvim/plugins/default.nix index 67f7f06..ecc9441 100644 --- a/modules/development/nixvim/plugins/default.nix +++ b/modules/development/nixvim/plugins/default.nix @@ -2,21 +2,21 @@ { ... }: { imports = [ - ./cmp.nix - ./comment.nix - ./dap-ui.nix - ./dap-virtual-text.nix - ./dap.nix - ./gitsigns.nix - ./indent-blankline.nix - ./lsp.nix - ./lualine.nix - ./luasnip.nix - ./noice.nix - ./nvim-tree.nix - ./telescope.nix - ./treesitter.nix - ./web-devicons.nix - ./which-key.nix + ./cmp + ./comment + ./dap-ui + ./dap-virtual-text + ./dap + ./gitsigns + ./indent-blankline + ./lsp + ./lualine + ./luasnip + ./noice + ./nvim-tree + ./telescope + ./treesitter + ./web-devicons + ./which-key ]; } diff --git a/modules/development/nixvim/plugins/gitsigns.nix b/modules/development/nixvim/plugins/gitsigns.nix deleted file mode 100644 index d9bda21..0000000 --- a/modules/development/nixvim/plugins/gitsigns.nix +++ /dev/null @@ -1,112 +0,0 @@ -# Git integration: signs, blame, diffs and hunk operations -{ - config, - lib, - pkgs, - ... -}: -let - base16Colors = import ../../../colors/base16 { inherit config lib pkgs; }; -in -{ - config.programs.nixvim = lib.mkIf config.development.nixvim.enable { - plugins.gitsigns = { - enable = true; - - settings = { - signs = { - add.text = "┃"; - change.text = "┃"; - delete.text = "▁"; - topdelete.text = "▔"; - changedelete.text = "~"; - untracked.text = "┆"; - }; - - signcolumn = false; - numhl = true; - current_line_blame = false; - current_line_blame_formatter = "<author>, <author_time:%Y-%m-%d> - <summary>"; - - on_attach = '' - function(bufnr) - local gitsigns = require('gitsigns') - local function map(mode, lhs, rhs, desc) - vim.keymap.set(mode, lhs, rhs, { buffer = bufnr, silent = true, desc = desc }) - end - - -- Navigation - map('n', ']c', function() gitsigns.nav_hunk('next') end, 'Next hunk') - map('n', '[c', function() gitsigns.nav_hunk('prev') end, 'Previous hunk') - map('n', ']C', function() gitsigns.nav_hunk('last') end, 'Last hunk') - map('n', '[C', function() gitsigns.nav_hunk('first') end, 'First hunk') - - -- Hunk actions - map('n', '<leader>gs', gitsigns.stage_hunk, 'Stage hunk') - map('v', '<leader>gs', function() - gitsigns.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) - end, 'Stage visual range hunk') - map('n', '<leader>gr', gitsigns.reset_hunk, 'Reset hunk') - map('v', '<leader>gr', function() - gitsigns.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) - end, 'Reset visual range hunk') - map('n', '<leader>gS', gitsigns.stage_buffer, 'Stage buffer') - map('n', '<leader>gR', gitsigns.reset_buffer, 'Reset buffer') - map('n', '<leader>gi', gitsigns.reset_buffer_index, 'Unstage buffer (reset index)') - map('n', '<leader>gu', gitsigns.undo_stage_hunk, 'Undo stage hunk') - - -- Preview - map('n', '<leader>gp', gitsigns.preview_hunk, 'Preview hunk') - map('n', '<leader>gP', gitsigns.preview_hunk_inline, 'Preview hunk inline') - - -- Blame - map('n', '<leader>gb', gitsigns.blame_line, 'Blame line') - map('n', '<leader>gB', function() - gitsigns.blame_line({ full = true }) - end, 'Blame line (full)') - - -- Diffs / base - map('n', '<leader>gd', gitsigns.diffthis, 'Diff this (index)') - map('n', '<leader>gD', function() - gitsigns.diffthis('~') - end, 'Diff this (HEAD)') - map('n', '<leader>gc', function() - gitsigns.change_base(nil, true) - end, 'Change diff base') - - -- Quickfix / location list - map('n', '<leader>gq', gitsigns.setqflist, 'Hunks to quickfix') - map('n', '<leader>gQ', function() - gitsigns.setqflist('all') - end, 'Repo hunks to quickfix') - map('n', '<leader>gl', gitsigns.setloclist, 'Hunks to location list') - - -- Toggles - map('n', '<leader>gts', gitsigns.toggle_signs, 'Toggle signs') - map('n', '<leader>gtl', gitsigns.toggle_linehl, 'Toggle line highlight') - map('n', '<leader>gtn', gitsigns.toggle_numhl, 'Toggle number highlight') - map('n', '<leader>gtw', gitsigns.toggle_word_diff, 'Toggle word diff') - map('n', '<leader>gtb', gitsigns.toggle_current_line_blame, 'Toggle current line blame') - map('n', '<leader>gtd', gitsigns.toggle_deleted, 'Toggle deleted lines') - - -- Misc - map('n', '<leader>gF', gitsigns.refresh, 'Refresh gitsigns') - - -- Text object - map({ 'o', 'x' }, 'ih', gitsigns.select_hunk, 'Select hunk text object') - end - ''; - }; - }; - - highlight = with base16Colors.colorsWithHashPrefix; { - GitSignsAdd.fg = base0B; - GitSignsChange.fg = base0A; - GitSignsDelete.fg = base08; - GitSignsTopdelete.fg = base08; - GitSignsChangedelete.fg = base0A; - GitSignsUntracked.fg = base0C; - GitSignsCurrentLineBlame.fg = base04; - }; - }; -} diff --git a/modules/development/nixvim/plugins/gitsigns/default.nix b/modules/development/nixvim/plugins/gitsigns/default.nix new file mode 100644 index 0000000..af8b920 --- /dev/null +++ b/modules/development/nixvim/plugins/gitsigns/default.nix @@ -0,0 +1,45 @@ +# Git integration: signs, blame, diffs and hunk operations +{ + config, + lib, + pkgs, + ... +}: +let + base16Colors = import ../../../../colors/base16 { inherit config lib pkgs; }; +in +{ + config.programs.nixvim = lib.mkIf config.development.nixvim.enable { + plugins.gitsigns = { + enable = true; + + settings = { + signs = { + add.text = "┃"; + change.text = "┃"; + delete.text = "▁"; + topdelete.text = "▔"; + changedelete.text = "~"; + untracked.text = "┆"; + }; + + signcolumn = false; + numhl = true; + current_line_blame = false; + current_line_blame_formatter = "<author>, <author_time:%Y-%m-%d> - <summary>"; + + on_attach = builtins.readFile ./on-attach.lua; + }; + }; + + highlight = with base16Colors.colorsWithHashPrefix; { + GitSignsAdd.fg = base0B; + GitSignsChange.fg = base0A; + GitSignsDelete.fg = base08; + GitSignsTopdelete.fg = base08; + GitSignsChangedelete.fg = base0A; + GitSignsUntracked.fg = base0C; + GitSignsCurrentLineBlame.fg = base04; + }; + }; +} diff --git a/modules/development/nixvim/plugins/gitsigns/on-attach.lua b/modules/development/nixvim/plugins/gitsigns/on-attach.lua new file mode 100644 index 0000000..5f63330 --- /dev/null +++ b/modules/development/nixvim/plugins/gitsigns/on-attach.lua @@ -0,0 +1,66 @@ +function(bufnr) + local gitsigns = require('gitsigns') + local function map(mode, lhs, rhs, desc) + vim.keymap.set(mode, lhs, rhs, { buffer = bufnr, silent = true, desc = desc }) + end + + -- Navigation + map('n', ']c', function() gitsigns.nav_hunk('next') end, 'Next hunk') + map('n', '[c', function() gitsigns.nav_hunk('prev') end, 'Previous hunk') + map('n', ']C', function() gitsigns.nav_hunk('last') end, 'Last hunk') + map('n', '[C', function() gitsigns.nav_hunk('first') end, 'First hunk') + + -- Hunk actions + map('n', '<leader>gs', gitsigns.stage_hunk, 'Stage hunk') + map('v', '<leader>gs', function() + gitsigns.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) + end, 'Stage visual range hunk') + map('n', '<leader>gr', gitsigns.reset_hunk, 'Reset hunk') + map('v', '<leader>gr', function() + gitsigns.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) + end, 'Reset visual range hunk') + map('n', '<leader>gS', gitsigns.stage_buffer, 'Stage buffer') + map('n', '<leader>gR', gitsigns.reset_buffer, 'Reset buffer') + map('n', '<leader>gi', gitsigns.reset_buffer_index, 'Unstage buffer (reset index)') + map('n', '<leader>gu', gitsigns.undo_stage_hunk, 'Undo stage hunk') + + -- Preview + map('n', '<leader>gp', gitsigns.preview_hunk, 'Preview hunk') + map('n', '<leader>gP', gitsigns.preview_hunk_inline, 'Preview hunk inline') + + -- Blame + map('n', '<leader>gb', gitsigns.blame_line, 'Blame line') + map('n', '<leader>gB', function() + gitsigns.blame_line({ full = true }) + end, 'Blame line (full)') + + -- Diffs / base + map('n', '<leader>gd', gitsigns.diffthis, 'Diff this (index)') + map('n', '<leader>gD', function() + gitsigns.diffthis('~') + end, 'Diff this (HEAD)') + map('n', '<leader>gc', function() + gitsigns.change_base(nil, true) + end, 'Change diff base') + + -- Quickfix / location list + map('n', '<leader>gq', gitsigns.setqflist, 'Hunks to quickfix') + map('n', '<leader>gQ', function() + gitsigns.setqflist('all') + end, 'Repo hunks to quickfix') + map('n', '<leader>gl', gitsigns.setloclist, 'Hunks to location list') + + -- Toggles + map('n', '<leader>gts', gitsigns.toggle_signs, 'Toggle signs') + map('n', '<leader>gtl', gitsigns.toggle_linehl, 'Toggle line highlight') + map('n', '<leader>gtn', gitsigns.toggle_numhl, 'Toggle number highlight') + map('n', '<leader>gtw', gitsigns.toggle_word_diff, 'Toggle word diff') + map('n', '<leader>gtb', gitsigns.toggle_current_line_blame, 'Toggle current line blame') + map('n', '<leader>gtd', gitsigns.toggle_deleted, 'Toggle deleted lines') + + -- Misc + map('n', '<leader>gF', gitsigns.refresh, 'Refresh gitsigns') + + -- Text object + map({ 'o', 'x' }, 'ih', gitsigns.select_hunk, 'Select hunk text object') +end diff --git a/modules/development/nixvim/plugins/indent-blankline.nix b/modules/development/nixvim/plugins/indent-blankline/default.nix index 6890dbf..6890dbf 100644 --- a/modules/development/nixvim/plugins/indent-blankline.nix +++ b/modules/development/nixvim/plugins/indent-blankline/default.nix diff --git a/modules/development/nixvim/plugins/lsp.nix b/modules/development/nixvim/plugins/lsp.nix deleted file mode 100644 index 6c64a37..0000000 --- a/modules/development/nixvim/plugins/lsp.nix +++ /dev/null @@ -1,33 +0,0 @@ -# Language Server Protocol configuration -{ config, lib, ... }: -{ - config.programs.nixvim.plugins.lsp = lib.mkIf config.development.nixvim.enable { - enable = true; - inlayHints = true; - autoLoad = true; - - keymaps = { - lspBuf = { - "<leader>lh" = "hover"; - "<leader>lr" = "references"; - "<leader>ld" = "definition"; - "<leader>li" = "implementation"; - "<leader>lt" = "type_definition"; - "<leader>lD" = "declaration"; - "<leader>lR" = "rename"; - "<leader>la" = "code_action"; - "<leader>lf" = "format"; - "<leader>ls" = "signature_help"; - "<leader>lwa" = "add_workspace_folder"; - "<leader>lwr" = "remove_workspace_folder"; - "<leader>lwl" = "list_workspace_folders"; - }; - diagnostic = { - "<leader>le" = "open_float"; - "<leader>lq" = "setloclist"; - "[d" = "goto_prev"; - "]d" = "goto_next"; - }; - }; - }; -} diff --git a/modules/development/nixvim/plugins/lsp/default.nix b/modules/development/nixvim/plugins/lsp/default.nix new file mode 100644 index 0000000..1d56b66 --- /dev/null +++ b/modules/development/nixvim/plugins/lsp/default.nix @@ -0,0 +1,43 @@ +# Language Server Protocol configuration +{ config, lib, ... }: +{ + config.programs.nixvim = lib.mkIf config.development.nixvim.enable { + plugins.lsp = { + enable = true; + inlayHints = true; + autoLoad = true; + + keymaps = { + lspBuf = { + "<leader>lh" = "hover"; + "<leader>lr" = "references"; + "<leader>ld" = "definition"; + "<leader>li" = "implementation"; + "<leader>lt" = "type_definition"; + "<leader>lD" = "declaration"; + "<leader>lR" = "rename"; + "<leader>la" = "code_action"; + "<leader>lf" = "format"; + "<leader>ls" = "signature_help"; + "<leader>lwa" = "add_workspace_folder"; + "<leader>lwr" = "remove_workspace_folder"; + "<leader>lwl" = "list_workspace_folders"; + }; + diagnostic = { + "<leader>le" = "open_float"; + "<leader>lq" = "setloclist"; + "[d" = "goto_prev"; + "]d" = "goto_next"; + }; + }; + }; + + autoCmd = [ + { + event = [ "CursorHold" ]; + pattern = "*"; + callback.__raw = builtins.readFile ./open-diagnostic-float.lua; + } + ]; + }; +} diff --git a/modules/development/nixvim/plugins/lsp/open-diagnostic-float.lua b/modules/development/nixvim/plugins/lsp/open-diagnostic-float.lua new file mode 100644 index 0000000..fbfb9b9 --- /dev/null +++ b/modules/development/nixvim/plugins/lsp/open-diagnostic-float.lua @@ -0,0 +1,3 @@ +function() + vim.diagnostic.open_float(nil, { focus = false }) +end diff --git a/modules/development/nixvim/plugins/lualine.nix b/modules/development/nixvim/plugins/lualine/default.nix index 55326ee..a7dd083 100644 --- a/modules/development/nixvim/plugins/lualine.nix +++ b/modules/development/nixvim/plugins/lualine/default.nix @@ -6,7 +6,7 @@ ... }: let - base16Colors = import ../../../colors/base16 { inherit config lib pkgs; }; + base16Colors = import ../../../../colors/base16 { inherit config lib pkgs; }; in { config.programs.nixvim.plugins.lualine = lib.mkIf config.development.nixvim.enable { diff --git a/modules/development/nixvim/plugins/luasnip.nix b/modules/development/nixvim/plugins/luasnip/default.nix index cab0f62..cab0f62 100644 --- a/modules/development/nixvim/plugins/luasnip.nix +++ b/modules/development/nixvim/plugins/luasnip/default.nix diff --git a/modules/development/nixvim/plugins/noice.nix b/modules/development/nixvim/plugins/noice/default.nix index 8f2ea0d..8f2ea0d 100644 --- a/modules/development/nixvim/plugins/noice.nix +++ b/modules/development/nixvim/plugins/noice/default.nix diff --git a/modules/development/nixvim/plugins/nvim-tree.nix b/modules/development/nixvim/plugins/nvim-tree/default.nix index f54ada2..f54ada2 100644 --- a/modules/development/nixvim/plugins/nvim-tree.nix +++ b/modules/development/nixvim/plugins/nvim-tree/default.nix diff --git a/modules/development/nixvim/plugins/telescope.nix b/modules/development/nixvim/plugins/telescope/default.nix index 505a3eb..505a3eb 100644 --- a/modules/development/nixvim/plugins/telescope.nix +++ b/modules/development/nixvim/plugins/telescope/default.nix diff --git a/modules/development/nixvim/plugins/treesitter.nix b/modules/development/nixvim/plugins/treesitter/default.nix index 6150ad2..6150ad2 100644 --- a/modules/development/nixvim/plugins/treesitter.nix +++ b/modules/development/nixvim/plugins/treesitter/default.nix diff --git a/modules/development/nixvim/plugins/web-devicons.nix b/modules/development/nixvim/plugins/web-devicons/default.nix index 61ca5e9..61ca5e9 100644 --- a/modules/development/nixvim/plugins/web-devicons.nix +++ b/modules/development/nixvim/plugins/web-devicons/default.nix diff --git a/modules/development/nixvim/plugins/which-key.nix b/modules/development/nixvim/plugins/which-key/default.nix index 3a0c0ef..3a0c0ef 100644 --- a/modules/development/nixvim/plugins/which-key.nix +++ b/modules/development/nixvim/plugins/which-key/default.nix |
