diff options
Diffstat (limited to 'modules/development/nixvim/plugins/dap')
| -rw-r--r-- | modules/development/nixvim/plugins/dap/default.nix | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/modules/development/nixvim/plugins/dap/default.nix b/modules/development/nixvim/plugins/dap/default.nix new file mode 100644 index 0000000..97452ac --- /dev/null +++ b/modules/development/nixvim/plugins/dap/default.nix @@ -0,0 +1,67 @@ +# 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"; + } + ]; + }; +} |
