diff options
| author | Arpit Chakladar <arpitchakladar@gmail.com> | 2026-09-15 04:10:04 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar@gmail.com> | 2026-09-15 04:10:04 +0530 |
| commit | 61d7d04c916f1bc84058cc6043f14006522a9ede (patch) | |
| tree | 5f321efe0c7087deceeb86d07ce495a80c6105cd /modules/development/nixvim/plugins/dap.nix | |
| parent | 2368e5019ab0f5584443b920d057723029d67b75 (diff) | |
| parent | 97069824b7ce38398bd03bc936d613998959b9be (diff) | |
| download | home-manager-config-61d7d04c916f1bc84058cc6043f14006522a9ede.tar.gz home-manager-config-61d7d04c916f1bc84058cc6043f14006522a9ede.zip | |
Merge branch 'nixvim-new-features'
Diffstat (limited to 'modules/development/nixvim/plugins/dap.nix')
| -rw-r--r-- | modules/development/nixvim/plugins/dap.nix | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/modules/development/nixvim/plugins/dap.nix b/modules/development/nixvim/plugins/dap.nix new file mode 100644 index 0000000..02bffa6 --- /dev/null +++ b/modules/development/nixvim/plugins/dap.nix @@ -0,0 +1,81 @@ +# Debug Adapter Protocol client implementation for Neovim. +{ config, lib, ... }: +{ + config.programs.nixvim = lib.mkIf config.development.nixvim.enable { + plugins.dap = { + enable = true; + }; + + keymaps = [ + # Core DAP controls + { + mode = "n"; + key = "<leader>dc"; + action = "<cmd>lua require('dap').continue()<CR>"; + options.desc = "Debug: Continue"; + } + { + mode = "n"; + key = "<leader>di"; + action = "<cmd>lua require('dap').step_into()<CR>"; + options.desc = "Debug: Step Into"; + } + { + mode = "n"; + key = "<leader>do"; + action = "<cmd>lua require('dap').step_over()<CR>"; + options.desc = "Debug: Step Over"; + } + { + mode = "n"; + key = "<leader>dO"; + action = "<cmd>lua require('dap').step_out()<CR>"; + options.desc = "Debug: Step Out"; + } + { + mode = "n"; + key = "<leader>db"; + action = "<cmd>lua require('dap').toggle_breakpoint()<CR>"; + options.desc = "Debug: Toggle Breakpoint"; + } + { + mode = "n"; + key = "<leader>dB"; + action = "<cmd>lua require('dap').set_breakpoint(vim.fn.input('Breakpoint condition: '))<CR>"; + options.desc = "Debug: Conditional Breakpoint"; + } + { + mode = "n"; + key = "<leader>dl"; + action = "<cmd>lua require('dap').run_last()<CR>"; + options.desc = "Debug: Run Last"; + } + { + mode = "n"; + key = "<leader>dt"; + action = "<cmd>lua require('dap').terminate()<CR>"; + options.desc = "Debug: Terminate"; + } + { + mode = "n"; + key = "<leader>dr"; + action = "<cmd>lua require('dap').repl.toggle()<CR>"; + 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 + ''; + }; +} |
