From 34813d1dde1327f1a6214db9d50b12339e47210e Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Fri, 11 Sep 2026 21:57:50 +0530 Subject: feat(development/nixvim): added dap to nixvim Added debugging capabilities to nixvim with the nvim-dap plugin + some other supporting plugins for the interface. --- modules/development/nixvim/plugins/dap-ui.nix | 7 +++++++ modules/development/nixvim/plugins/dap-virtual-text.nix | 7 +++++++ modules/development/nixvim/plugins/dap.nix | 7 +++++++ modules/development/nixvim/plugins/default.nix | 3 +++ 4 files changed, 24 insertions(+) create mode 100644 modules/development/nixvim/plugins/dap-ui.nix create mode 100644 modules/development/nixvim/plugins/dap-virtual-text.nix create mode 100644 modules/development/nixvim/plugins/dap.nix (limited to 'modules/development/nixvim/plugins') diff --git a/modules/development/nixvim/plugins/dap-ui.nix b/modules/development/nixvim/plugins/dap-ui.nix new file mode 100644 index 0000000..5885e54 --- /dev/null +++ b/modules/development/nixvim/plugins/dap-ui.nix @@ -0,0 +1,7 @@ +# A UI for nvim-dap. +{ config, lib, ... }: +{ + config.programs.nixvim.plugins.dap-ui = lib.mkIf config.development.nixvim.enable { + enable = true; + }; +} diff --git a/modules/development/nixvim/plugins/dap-virtual-text.nix b/modules/development/nixvim/plugins/dap-virtual-text.nix new file mode 100644 index 0000000..4fea5ca --- /dev/null +++ b/modules/development/nixvim/plugins/dap-virtual-text.nix @@ -0,0 +1,7 @@ +# A plugin that adds virtual text support to the nvim-dap. +{ config, lib, ... }: +{ + config.programs.nixvim.plugins.dap-virtual-text = lib.mkIf config.development.nixvim.enable { + enable = true; + }; +} diff --git a/modules/development/nixvim/plugins/dap.nix b/modules/development/nixvim/plugins/dap.nix new file mode 100644 index 0000000..215a41c --- /dev/null +++ b/modules/development/nixvim/plugins/dap.nix @@ -0,0 +1,7 @@ +# Debug Adapter Protocol client implementation for Neovim. +{ config, lib, ... }: +{ + config.programs.nixvim.plugins.dap = lib.mkIf config.development.nixvim.enable { + enable = true; + }; +} diff --git a/modules/development/nixvim/plugins/default.nix b/modules/development/nixvim/plugins/default.nix index c7ebea4..67f7f06 100644 --- a/modules/development/nixvim/plugins/default.nix +++ b/modules/development/nixvim/plugins/default.nix @@ -4,6 +4,9 @@ imports = [ ./cmp.nix ./comment.nix + ./dap-ui.nix + ./dap-virtual-text.nix + ./dap.nix ./gitsigns.nix ./indent-blankline.nix ./lsp.nix -- cgit v1.2.3 From 8d0780f666fe7716397e9824624e0aced85670e5 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Sat, 12 Sep 2026 05:57:11 +0530 Subject: feat(development/nixvim): gitsigns configurations Finally made a fully featured gitsigns config integrating all its features. --- modules/development/nixvim/default.nix | 1 + modules/development/nixvim/plugins/gitsigns.nix | 102 ++++++++++++++++++++++- modules/development/nixvim/plugins/telescope.nix | 10 --- 3 files changed, 100 insertions(+), 13 deletions(-) (limited to 'modules/development/nixvim/plugins') diff --git a/modules/development/nixvim/default.nix b/modules/development/nixvim/default.nix index bf3d143..f1e038a 100644 --- a/modules/development/nixvim/default.nix +++ b/modules/development/nixvim/default.nix @@ -34,6 +34,7 @@ clipboard = "unnamedplus"; updatetime = 500; }; + globals.mapleader = " "; clipboard.providers.xclip.enable = true; extraConfigLuaPre = with config.scheme.withHashtag; '' vim.opt.fillchars:append({ eob = " " }) diff --git a/modules/development/nixvim/plugins/gitsigns.nix b/modules/development/nixvim/plugins/gitsigns.nix index 38ad85f..ccfb2c9 100644 --- a/modules/development/nixvim/plugins/gitsigns.nix +++ b/modules/development/nixvim/plugins/gitsigns.nix @@ -1,7 +1,103 @@ -# Git status in the sign column +# Git integration: signs, blame, diffs and hunk operations { config, lib, ... }: { - config.programs.nixvim.plugins.gitsigns = lib.mkIf config.development.nixvim.enable { - enable = true; + 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 = "┆"; + }; + + numhl = true; + current_line_blame = false; + current_line_blame_formatter = ", - "; + + 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', 'gs', gitsigns.stage_hunk, 'Stage hunk') + map('v', 'gs', function() + gitsigns.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) + end, 'Stage visual range hunk') + map('n', 'gr', gitsigns.reset_hunk, 'Reset hunk') + map('v', 'gr', function() + gitsigns.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) + end, 'Reset visual range hunk') + map('n', 'gS', gitsigns.stage_buffer, 'Stage buffer') + map('n', 'gR', gitsigns.reset_buffer, 'Reset buffer') + map('n', 'gi', gitsigns.reset_buffer_index, 'Unstage buffer (reset index)') + map('n', 'gu', gitsigns.undo_stage_hunk, 'Undo stage hunk') + + -- Preview + map('n', 'gp', gitsigns.preview_hunk, 'Preview hunk') + map('n', 'gP', gitsigns.preview_hunk_inline, 'Preview hunk inline') + + -- Blame + map('n', 'gb', gitsigns.blame_line, 'Blame line') + map('n', 'gB', function() + gitsigns.blame_line({ full = true }) + end, 'Blame line (full)') + + -- Diffs / base + map('n', 'gd', gitsigns.diffthis, 'Diff this (index)') + map('n', 'gD', function() + gitsigns.diffthis('~') + end, 'Diff this (HEAD)') + map('n', 'gc', function() + gitsigns.change_base(nil, true) + end, 'Change diff base') + + -- Quickfix / location list + map('n', 'gq', gitsigns.setqflist, 'Hunks to quickfix') + map('n', 'gQ', function() + gitsigns.setqflist('all') + end, 'Repo hunks to quickfix') + map('n', 'gl', gitsigns.setloclist, 'Hunks to location list') + + -- Toggles + map('n', 'gts', gitsigns.toggle_signs, 'Toggle signs') + map('n', 'gtl', gitsigns.toggle_linehl, 'Toggle line highlight') + map('n', 'gtn', gitsigns.toggle_numhl, 'Toggle number highlight') + map('n', 'gtw', gitsigns.toggle_word_diff, 'Toggle word diff') + map('n', 'gtb', gitsigns.toggle_current_line_blame, 'Toggle current line blame') + map('n', 'gtd', gitsigns.toggle_deleted, 'Toggle deleted lines') + + -- Misc + map('n', 'gF', gitsigns.refresh, 'Refresh gitsigns') + + -- Text object + map({ 'o', 'x' }, 'ih', gitsigns.select_hunk, 'Select hunk text object') + end + ''; + }; + }; + + highlight = with config.scheme.withHashtag; { + 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/telescope.nix b/modules/development/nixvim/plugins/telescope.nix index 8f06ec9..505a3eb 100644 --- a/modules/development/nixvim/plugins/telescope.nix +++ b/modules/development/nixvim/plugins/telescope.nix @@ -56,16 +56,6 @@ options.desc = "Document symbols"; }; - # Git - "gc" = { - action = "git_commits"; - options.desc = "Git commits"; - }; - "gb" = { - action = "git_branches"; - options.desc = "Git branches"; - }; - # Misc "fh" = { action = "help_tags"; -- cgit v1.2.3 From 3f8dda78a30e920d516648503b5f49e865bacc89 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Sun, 13 Sep 2026 00:56:29 +0530 Subject: feat(development/nixvim): nixvim word-wrapping, disable gitsins column Now in neovim/nixvim lines breaks on words instead of characters, and there is a character indicator for each wrapped line. Gitsigns diff symbols column has been disabled, the line number highlighting is good enough. --- modules/development/nixvim/default.nix | 4 ++++ modules/development/nixvim/plugins/gitsigns.nix | 1 + 2 files changed, 5 insertions(+) (limited to 'modules/development/nixvim/plugins') diff --git a/modules/development/nixvim/default.nix b/modules/development/nixvim/default.nix index 4cdb355..eab3d85 100644 --- a/modules/development/nixvim/default.nix +++ b/modules/development/nixvim/default.nix @@ -28,6 +28,10 @@ tabstop = 2; softtabstop = 2; expandtab = true; + wrap = true; + linebreak = true; + breakindent = true; + showbreak = "↳"; list = true; laststatus = 3; foldlevel = 99; diff --git a/modules/development/nixvim/plugins/gitsigns.nix b/modules/development/nixvim/plugins/gitsigns.nix index ccfb2c9..28123fd 100644 --- a/modules/development/nixvim/plugins/gitsigns.nix +++ b/modules/development/nixvim/plugins/gitsigns.nix @@ -15,6 +15,7 @@ untracked.text = "┆"; }; + signcolumn = false; numhl = true; current_line_blame = false; current_line_blame_formatter = ", - "; -- cgit v1.2.3 From b3123b2c13a039cda45e0a2b45e0e404dac8d96e Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Sun, 13 Sep 2026 03:42:05 +0530 Subject: feat(development/nixvim): added more comprehensive list of keybindings for lsp --- modules/development/nixvim/plugins/lsp.nix | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'modules/development/nixvim/plugins') diff --git a/modules/development/nixvim/plugins/lsp.nix b/modules/development/nixvim/plugins/lsp.nix index 0a92f86..35d80dc 100644 --- a/modules/development/nixvim/plugins/lsp.nix +++ b/modules/development/nixvim/plugins/lsp.nix @@ -6,12 +6,28 @@ inlayHints = true; autoLoad = true; - keymaps.lspBuf = { - K = "hover"; - gD = "references"; - gd = "definition"; - gi = "implementation"; - gt = "type_definition"; + keymaps = { + lspBuf = { + "lh" = "hover"; + "lr" = "references"; + "ld" = "definition"; + "li" = "implementation"; + "lt" = "type_definition"; + "lD" = "declaration"; + "lR" = "rename"; + "la" = "code_action"; + "lf" = "format"; + "ls" = "signature_help"; + "lwa" = "add_workspace_folder"; + "lwr" = "remove_workspace_folder"; + "lwl" = "list_workspace_folders"; + }; + diagnostic = { + "le" = "open_float"; + "lq" = "setloclist"; + "[d" = "goto_prev"; + "]d" = "goto_next"; + }; }; servers = { -- cgit v1.2.3 From 4befa9082c71e6ae323222de2838a1b2afc685be Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Mon, 14 Sep 2026 05:24:52 +0530 Subject: feat(development/nixvim): added dap keybindings --- modules/development/nixvim/plugins/dap-ui.nix | 22 ++++- modules/development/nixvim/plugins/dap.nix | 119 +++++++++++++++++++++++++- 2 files changed, 137 insertions(+), 4 deletions(-) (limited to 'modules/development/nixvim/plugins') diff --git a/modules/development/nixvim/plugins/dap-ui.nix b/modules/development/nixvim/plugins/dap-ui.nix index 5885e54..cc25d2d 100644 --- a/modules/development/nixvim/plugins/dap-ui.nix +++ b/modules/development/nixvim/plugins/dap-ui.nix @@ -1,7 +1,25 @@ # A UI for nvim-dap. { config, lib, ... }: { - config.programs.nixvim.plugins.dap-ui = lib.mkIf config.development.nixvim.enable { - enable = true; + config.programs.nixvim = lib.mkIf config.development.nixvim.enable { + plugins.dap-ui = { + enable = true; + }; + + keymaps = [ + # dap-ui controls + { + mode = "n"; + key = "du"; + action = "lua require('dapui').toggle()"; + options.desc = "Debug: Toggle UI"; + } + { + mode = "n"; + key = "de"; + action = "lua require('dapui').eval()"; + options.desc = "Debug: Eval Expression Under Cursor"; + } + ]; }; } diff --git a/modules/development/nixvim/plugins/dap.nix b/modules/development/nixvim/plugins/dap.nix index 215a41c..f45e029 100644 --- a/modules/development/nixvim/plugins/dap.nix +++ b/modules/development/nixvim/plugins/dap.nix @@ -1,7 +1,122 @@ # Debug Adapter Protocol client implementation for Neovim. { config, lib, ... }: { - config.programs.nixvim.plugins.dap = lib.mkIf config.development.nixvim.enable { - enable = true; + config.programs.nixvim = lib.mkIf config.development.nixvim.enable { + plugins.dap = { + enable = true; + + # Example adapter — adjust/add per language you actually debug. + # This one assumes you have `netcoredbg`/`codelldb`/etc. available, + # swap for whatever debuggers you use. + adapters.servers = { + # Example: python debugpy adapter + # python = { + # command = "${pkgs.python3Packages.debugpy}/bin/python"; + # args = [ "-m" "debugpy.adapter" ]; + # }; + }; + }; + + keymaps = [ + # Core DAP controls + { + mode = "n"; + key = "dc"; + action = "lua require('dap').continue()"; + options.desc = "Debug: Continue"; + } + { + mode = "n"; + key = "di"; + action = "lua require('dap').step_into()"; + options.desc = "Debug: Step Into"; + } + { + mode = "n"; + key = "do"; + action = "lua require('dap').step_over()"; + options.desc = "Debug: Step Over"; + } + { + mode = "n"; + key = "dO"; + action = "lua require('dap').step_out()"; + options.desc = "Debug: Step Out"; + } + { + mode = "n"; + key = "db"; + action = "lua require('dap').toggle_breakpoint()"; + options.desc = "Debug: Toggle Breakpoint"; + } + { + mode = "n"; + key = "dB"; + action = "lua require('dap').set_breakpoint(vim.fn.input('Breakpoint condition: '))"; + options.desc = "Debug: Conditional Breakpoint"; + } + { + mode = "n"; + key = "dl"; + action = "lua require('dap').run_last()"; + options.desc = "Debug: Run Last"; + } + { + mode = "n"; + key = "dt"; + action = "lua require('dap').terminate()"; + options.desc = "Debug: Terminate"; + } + { + mode = "n"; + key = "dr"; + action = "lua require('dap').repl.toggle()"; + options.desc = "Debug: Toggle REPL"; + } + { + mode = "n"; + key = "dd"; + action = "lua vim.diagnostic.open_float()"; + options.desc = "Diagnostics: Line diagnostics float"; + } + { + mode = "n"; + key = "dx"; + action = "lua vim.diagnostic.close()"; + options.desc = "Diagnostics: Close float"; + } + { + mode = "n"; + key = "dn"; + action = "lua vim.diagnostic.goto_next()"; + options.desc = "Diagnostics: Next"; + } + { + mode = "n"; + key = "dp"; + action = "lua vim.diagnostic.goto_prev()"; + options.desc = "Diagnostics: Previous"; + } + { + mode = "n"; + key = "dq"; + action = "lua vim.diagnostic.setloclist()"; + options.desc = "Diagnostics: Load location list"; + } + ]; + + # 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 + ''; }; } -- cgit v1.2.3 From 21edf9d9d5ebb1d745093bd1c2727c71135bc478 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Mon, 14 Sep 2026 05:26:03 +0530 Subject: feat(development/nixvim): removed default lsp server configurations Now this config relies on the user manually starting the lsp or the project containing a .nvim.lsp that enables the language server with vim.lsp.enable({ ... }). --- modules/development/nixvim/plugins/lsp.nix | 216 ----------------------------- 1 file changed, 216 deletions(-) (limited to 'modules/development/nixvim/plugins') diff --git a/modules/development/nixvim/plugins/lsp.nix b/modules/development/nixvim/plugins/lsp.nix index 35d80dc..6c64a37 100644 --- a/modules/development/nixvim/plugins/lsp.nix +++ b/modules/development/nixvim/plugins/lsp.nix @@ -29,221 +29,5 @@ "]d" = "goto_next"; }; }; - - servers = { - # System and configuration - nixd = { - enable = true; - package = null; - }; # Nix - bashls = { - enable = true; - package = null; - }; # Bash shell - taplo = { - enable = true; - package = null; - }; # TOML - yamlls = { - enable = true; - package = null; - }; # YAML - jsonls = { - enable = true; - package = null; - }; # JSON - marksman = { - enable = true; - package = null; - }; # Markdown - - # Web development - html = { - enable = true; - package = null; - }; # HTML - cssls = { - enable = true; - package = null; - }; # CSS, SCSS and LESS - tailwindcss = { - enable = true; - package = null; - }; # Tailwind CSS - vtsls = { - # JS and TS fast wrapper for tsserver - enable = true; - package = null; - settings = { - # Limits huge generic type hints - vtsls.experimental.maxInlayHintLength = 30; - - # TypeScript type inferences - typescript.inlayHints = { - parameterNames.enabled = "all"; - parameterTypes.enabled = true; - variableTypes.enabled = true; - propertyDeclarationTypes.enabled = true; - functionLikeReturnTypes.enabled = true; - enumMemberValues.enabled = true; - }; - - # JavaScript type inferences - javascript.inlayHints = { - parameterNames.enabled = "all"; - parameterTypes.enabled = true; - variableTypes.enabled = true; - propertyDeclarationTypes.enabled = true; - functionLikeReturnTypes.enabled = true; - enumMemberValues.enabled = true; - }; - }; - }; - eslint = { - enable = true; - package = null; - }; # ESLint diagnostics and formatting - - # Web frameworks - volar = { - # Vue - enable = true; - package = null; - tslsIntegration = false; - }; - svelte = { - enable = true; - package = null; - }; # Svelte - astro = { - enable = true; - package = null; - }; # Astro - - # Scripting and high-level languages - basedpyright = { - # Python, modern faster fork of Pyright - enable = true; - package = null; - settings.basedpyright.analysis.inlayHints = { - variableTypes = true; - callArgumentNames = true; - functionReturnTypes = true; - genericTypes = false; # Opt in since these can get noisy - }; - }; - ruff = { - enable = true; - package = null; - }; # Python linter and formatter - ruby_lsp = { - enable = true; - package = null; - }; # Ruby - lua_ls = { - # Lua - enable = true; - package = null; - settings.Lua.hint = { - enable = true; - arrayIndex = "Auto"; - setType = true; - paramName = "All"; - paramType = true; - }; - }; - intelephense = { - enable = true; - package = null; - }; # PHP - elixirls = { - enable = true; - package = null; - }; # Elixir - - # Systems, compiled and enterprise - clangd = { - enable = true; - package = null; - }; # C and C++ with inlay hints on by default - rust_analyzer = { - # Rust with inlay hints on by default - enable = true; - package = null; - installCargo = false; - installRustc = false; - }; - gopls = { - # Go - enable = true; - package = null; - settings.gopls.hints = { - assignVariableTypes = true; - compositeLiteralFields = true; - compositeLiteralTypes = true; - constantValues = true; - functionTypeParameters = true; - parameterNames = true; - rangeVariableTypes = true; - }; - }; - zls = { - enable = true; - package = null; - }; # Zig with inlay hints on by default - jdtls = { - # Java - enable = true; - package = null; - settings.java.inlayHints.parameterNames.enabled = "all"; - }; - kotlin_language_server = { - enable = true; - package = null; - }; # Kotlin - csharp_ls = { - enable = true; - package = null; - }; # C# without inlay hint support - hls = { - # Haskell - enable = true; - package = null; - installGhc = false; - settings.haskell.plugin."inlay-hints".globalOn = true; - }; - ocamllsp = { - enable = true; - package = null; - }; # OCaml - - # Infrastructure and DevOps - dockerls = { - enable = true; - package = null; - }; # Dockerfile - docker_compose_language_service = { - enable = true; - package = null; - }; # Docker Compose - terraformls = { - enable = true; - package = null; - }; # Terraform and HCL - - # Data and APIs - sqlls = { - enable = true; - package = null; - }; # SQL - graphql = { - enable = true; - package = null; - }; # GraphQL - prismals = { - enable = true; - package = null; - }; # Prisma ORM - }; }; } -- cgit v1.2.3 From cd39b87e3d04ddeb5e6f35037badfa17a5918c5a Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Tue, 15 Sep 2026 03:13:25 +0530 Subject: chore(development/nixvim): removed duplicate keymaps from dap and lsp --- modules/development/nixvim/plugins/dap.nix | 41 ------------------------------ 1 file changed, 41 deletions(-) (limited to 'modules/development/nixvim/plugins') diff --git a/modules/development/nixvim/plugins/dap.nix b/modules/development/nixvim/plugins/dap.nix index f45e029..02bffa6 100644 --- a/modules/development/nixvim/plugins/dap.nix +++ b/modules/development/nixvim/plugins/dap.nix @@ -4,17 +4,6 @@ config.programs.nixvim = lib.mkIf config.development.nixvim.enable { plugins.dap = { enable = true; - - # Example adapter — adjust/add per language you actually debug. - # This one assumes you have `netcoredbg`/`codelldb`/etc. available, - # swap for whatever debuggers you use. - adapters.servers = { - # Example: python debugpy adapter - # python = { - # command = "${pkgs.python3Packages.debugpy}/bin/python"; - # args = [ "-m" "debugpy.adapter" ]; - # }; - }; }; keymaps = [ @@ -73,36 +62,6 @@ action = "lua require('dap').repl.toggle()"; options.desc = "Debug: Toggle REPL"; } - { - mode = "n"; - key = "dd"; - action = "lua vim.diagnostic.open_float()"; - options.desc = "Diagnostics: Line diagnostics float"; - } - { - mode = "n"; - key = "dx"; - action = "lua vim.diagnostic.close()"; - options.desc = "Diagnostics: Close float"; - } - { - mode = "n"; - key = "dn"; - action = "lua vim.diagnostic.goto_next()"; - options.desc = "Diagnostics: Next"; - } - { - mode = "n"; - key = "dp"; - action = "lua vim.diagnostic.goto_prev()"; - options.desc = "Diagnostics: Previous"; - } - { - mode = "n"; - key = "dq"; - action = "lua vim.diagnostic.setloclist()"; - options.desc = "Diagnostics: Load location list"; - } ]; # Auto open/close dap-ui with the debug session lifecycle -- cgit v1.2.3 From fe30a67a958d8ec78fdec8b83f66f8b3d491157e Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Tue, 15 Sep 2026 03:31:49 +0530 Subject: feat(development/nixvim): using c for comments, added window down keymap --- modules/development/nixvim/keymaps.nix | 2 +- modules/development/nixvim/plugins/comment.nix | 14 +++++++------- modules/development/nixvim/plugins/which-key.nix | 1 - 3 files changed, 8 insertions(+), 9 deletions(-) (limited to 'modules/development/nixvim/plugins') diff --git a/modules/development/nixvim/keymaps.nix b/modules/development/nixvim/keymaps.nix index 46c3168..66a4284 100644 --- a/modules/development/nixvim/keymaps.nix +++ b/modules/development/nixvim/keymaps.nix @@ -8,7 +8,7 @@ options.desc = "Move to left window"; } { - key = ""; + key = ""; action = "j"; options.desc = "Move to bottom window"; } diff --git a/modules/development/nixvim/plugins/comment.nix b/modules/development/nixvim/plugins/comment.nix index 10bed84..8c69218 100644 --- a/modules/development/nixvim/plugins/comment.nix +++ b/modules/development/nixvim/plugins/comment.nix @@ -5,17 +5,17 @@ enable = true; settings = { toggler = { - line = "gcc"; # toggle line comment - block = "gbc"; # toggle block comment + line = "cc"; # toggle line comment + block = "cb"; # toggle block comment }; opleader = { - line = "gc"; # line comment operator (gc + motion) - block = "gb"; # block comment operator (gb + motion) + line = "cc"; # toggle line comment + block = "cb"; # toggle block comment }; extra = { - above = "gcO"; # add comment line above - below = "gco"; # add comment line below - eol = "gcA"; # add comment at end of line + above = "cu"; # add comment line above + below = "cd"; # add comment line below + eol = "ce"; # add comment at end of line }; }; }; diff --git a/modules/development/nixvim/plugins/which-key.nix b/modules/development/nixvim/plugins/which-key.nix index 81ecd14..5802c96 100644 --- a/modules/development/nixvim/plugins/which-key.nix +++ b/modules/development/nixvim/plugins/which-key.nix @@ -9,7 +9,6 @@ registers = true; spelling = { enabled = true; - suggestions = 20; }; }; win = { -- cgit v1.2.3 From 54102de5c057ece86fa4f173ac65df2d6f202869 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Tue, 15 Sep 2026 03:39:39 +0530 Subject: feat(development/nixvim): added keybinding groups to which-key --- modules/development/nixvim/plugins/which-key.nix | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'modules/development/nixvim/plugins') diff --git a/modules/development/nixvim/plugins/which-key.nix b/modules/development/nixvim/plugins/which-key.nix index 5802c96..e400edd 100644 --- a/modules/development/nixvim/plugins/which-key.nix +++ b/modules/development/nixvim/plugins/which-key.nix @@ -14,6 +14,30 @@ win = { border = "single"; }; + + # Group descriptions for leader prefixes + spec = [ + { + __unkeyed-1 = "g"; + group = "+Git"; + } + { + __unkeyed-1 = "f"; + group = "+Find"; + } + { + __unkeyed-1 = "d"; + group = "+Debug"; + } + { + __unkeyed-1 = "l"; + group = "+LSP"; + } + { + __unkeyed-1 = "c"; + group = "+Comment"; + } + ]; }; }; } -- cgit v1.2.3 From c7fa6207119f41e9b480e38d631f4f0c2daab83b Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Tue, 15 Sep 2026 03:52:30 +0530 Subject: feat(development/nixvim): moved NvimTree keybindings --- modules/development/nixvim/keymaps.nix | 11 +--- modules/development/nixvim/plugins/nvim-tree.nix | 78 ++++++++++++++---------- modules/development/nixvim/plugins/which-key.nix | 4 ++ 3 files changed, 52 insertions(+), 41 deletions(-) (limited to 'modules/development/nixvim/plugins') diff --git a/modules/development/nixvim/keymaps.nix b/modules/development/nixvim/keymaps.nix index 972429f..fee21e5 100644 --- a/modules/development/nixvim/keymaps.nix +++ b/modules/development/nixvim/keymaps.nix @@ -13,6 +13,7 @@ action = ""; options.desc = "Disable leader delay"; } + # pane navigation { key = ""; action = "h"; @@ -33,15 +34,7 @@ action = "l"; options.desc = "Move to right window"; } - { - key = ""; - action = "NvimTreeToggle"; - mode = [ - "n" - "i" - ]; - options.desc = "Toggle file explorer"; - } + # scrolling { key = ""; action = "zz"; diff --git a/modules/development/nixvim/plugins/nvim-tree.nix b/modules/development/nixvim/plugins/nvim-tree.nix index 2f35e3c..67f61fd 100644 --- a/modules/development/nixvim/plugins/nvim-tree.nix +++ b/modules/development/nixvim/plugins/nvim-tree.nix @@ -1,43 +1,57 @@ # File explorer sidebar { config, lib, ... }: { - config.programs.nixvim.plugins.nvim-tree = lib.mkIf config.development.nixvim.enable { - enable = true; - settings = { - filters = { - dotfiles = false; - git_clean = false; - no_buffer = false; - custom = { }; - }; - git = { - enable = true; - ignore = false; - }; - view = { - width = 30; - }; - renderer = { - indent_markers = { + config.programs.nixvim = lib.mkIf config.development.nixvim.enable { + plugins.nvim-tree = { + enable = true; + settings = { + filters = { + dotfiles = false; + git_clean = false; + no_buffer = false; + custom = { }; + }; + git = { enable = true; - inline_arrows = false; - icons = { - corner = "└"; - edge = "│"; - item = "├"; - bottom = "─"; - none = " "; - }; + ignore = false; + }; + view = { + width = 30; }; - icons = { - show = { - folder = true; - folder_arrow = false; - file = true; - git = true; + renderer = { + indent_markers = { + enable = true; + inline_arrows = false; + icons = { + corner = "└"; + edge = "│"; + item = "├"; + bottom = "─"; + none = " "; + }; + }; + icons = { + show = { + folder = true; + folder_arrow = false; + file = true; + git = true; + }; }; }; }; }; + + keymaps = [ + { + key = "nt"; + action = "NvimTreeToggle"; + mode = [ + "n" + "i" + ]; + options.desc = "Toggle file explorer"; + } + ]; }; } diff --git a/modules/development/nixvim/plugins/which-key.nix b/modules/development/nixvim/plugins/which-key.nix index e400edd..3a0c0ef 100644 --- a/modules/development/nixvim/plugins/which-key.nix +++ b/modules/development/nixvim/plugins/which-key.nix @@ -37,6 +37,10 @@ __unkeyed-1 = "c"; group = "+Comment"; } + { + __unkeyed-1 = "n"; + group = "+Explorer"; + } ]; }; }; -- cgit v1.2.3