{ imports = [ ./dotnet.nix ]; programs.nixvim = { plugins = { dap.enable = true; dap-python.enable = true; dap-ui = { enable = true; settings = { controls = { enable = true; element = "repl"; }; layouts = [ { elements = [ { id = "breakpoints"; size = 0.25; } { id = "repl"; size = 0.75; } ]; position = "bottom"; size = 10; } ]; }; }; }; keymaps = [ { mode = "n"; key = ""; action = "lua require('dapui').toggle()"; options = { desc = "Toggle Debugging UI"; silent = true; }; } { mode = "n"; key = ""; action = "DapContinue"; options = { desc = "Continue Debugging"; silent = false; }; } { mode = "n"; key = ""; action = "DapStepOver"; options = { desc = "Step Over (Debugger)"; silent = true; }; } { mode = "n"; key = ""; action = "DapStepInto"; options = { desc = "Step Into (Debugger)"; silent = true; }; } { mode = "n"; key = ""; action = "DapStepOut"; options = { desc = "Step Out (Debugger)"; silent = true; }; } { mode = "n"; key = "b"; action = "DapToggleBreakpoint"; options = { desc = "Toggle Breakpoint (Debugger)"; silent = true; }; } { mode = "n"; key = "B"; action = "DapSetBreakpoint"; options = { desc = "Set Breakpoint (Debugger)"; silent = false; }; } { mode = "n"; key = "lp"; action = "lua require('dap').set_breakpoint(nil, nil, vim.fn.input('Log point message: '))"; options = { desc = "Set Log Point (Debugger)"; silent = false; }; } { mode = "n"; key = "dr"; action = "DapToggleRepl"; options = { desc = "Toggle REPL"; silent = true; }; } { mode = "n"; key = "dl"; action = "lua require('dap').run_last()"; options = { desc = "Run Last (Debugger)"; silent = false; }; } { mode = [ "n" "v" ]; key = "dh"; action = "lua require('dap.ui.widgets').hover()"; options = { desc = "TODO"; silent = true; }; } { mode = [ "n" "v" ]; key = "dh"; action = "lua require('dap.ui.widgets').preview()"; options = { desc = "TODO"; silent = true; }; } { mode = "n"; key = "df"; action = "lua require('dap.ui.widgets').centered_float(widgets.frames)"; options = { desc = "TODO"; silent = true; }; } { mode = "n"; key = "ds"; action = "lua require('dap.ui.widgets').centered_float(widgets.scopes)"; options = { desc = "TODO"; silent = true; }; } ]; }; }