{ plugins = { dap = { enable = true; signs = { dapBreakpoint = { text = " "; texthl = "DiagnosticInfo"; }; dapBreakpointCondition = { text = " "; texthl = "DiagnosticInfo"; }; dapBreakpointRejected = { text = " "; texthl = "DiagnosticError"; }; dapLogPoint = { text = " "; texthl = "DiagnosticInfo"; }; dapStopped = { text = "󰁕 "; texthl = "DiagnosticWarn"; linehl = "DapStoppedLine"; numhl = "DapStoppedLine"; }; }; }; dap-ui = { enable = true; settings.layouts = [ { elements = [ { id = "scopes"; size = 0.25; } { id = "breakpoints"; size = 0.25; } { id = "stacks"; size = 0.25; } { id = "watches"; size = 0.25; } ]; position = "left"; size = 40; } { elements = [ { id = "repl"; size = 0.5; } { id = "console"; size = 0; } ]; position = "bottom"; size = 10; } ]; }; dap-virtual-text.enable = true; which-key.settings.spec = [ { __unkeyed-1 = "d"; mode = [ "n" "v" ]; group = "+debug"; } ]; }; keymaps = [ { mode = ["n"]; action = ":DapContinue"; key = "dc"; options = { desc = "Continue"; }; } { mode = ["n"]; action = ":DapStepOver"; key = "dO"; options = { desc = "Step over"; }; } { mode = ["n"]; action = ":DapStepInto"; key = "di"; options = { desc = "Step Into"; }; } { mode = ["n"]; action = ":DapStepOut"; key = "do"; options = { desc = "Step Out"; }; } { mode = ["n"]; action = "lua require('dap').pause()"; key = "dp"; options = { desc = "Pause"; }; } { mode = ["n"]; action = ":DapToggleBreakpoint"; key = "db"; options = { desc = "Toggle Breakpoint"; }; } { mode = ["n"]; action = "lua require('dap').set_breakpoint(vim.fn.input('Breakpoint condition: '))"; key = "dB"; options = { desc = "Breakpoint (conditional)"; }; } { mode = ["n"]; action = ":DapToggleRepl"; key = "dR"; options = { desc = "Toggle REPL"; }; } { mode = ["n"]; action = "lua require('dap').run_last()"; key = "dr"; options = { desc = "Run Last"; }; } { mode = ["n"]; action = "lua require('dap').session()"; key = "ds"; options = { desc = "Session"; }; } { mode = ["n"]; action = ":DapTerminate"; key = "dt"; options = { desc = "Terminate"; }; } { mode = ["n"]; action = "lua require('dap.ui.widgets').hover()"; key = "dw"; options = { desc = "Hover Widget"; }; } { mode = ["n"]; action = "lua require('dapui').toggle()"; key = "du"; options = { desc = "Toggle UI"; }; } { mode = ["n"]; action = "lua require('dapui').eval()"; key = "de"; options = { desc = "Eval"; }; } ]; }