{ pkgs, ... }: { plugins = { cmp-dap.enable = true; dap = { enable = true; extensions = { dap-ui = { enable = true; floating.mappings = { close = [ "" "q" ]; }; }; dap-virtual-text = { enable = true; }; }; signs = { dapBreakpoint = { text = ""; texthl = "DapBreakpoint"; }; dapBreakpointCondition = { text = ""; texthl = "DapBreakpointCondition"; }; dapLogPoint = { text = ""; texthl = "DapLogPoint"; }; }; }; }; keymaps = [ { mode = "n"; key = "dB"; action = "\n lua require('dap').set_breakpoint(vim.fn.input('Breakpoint condition: '))\n "; options = { silent = true; desc = "Breakpoint Condition"; }; } { mode = "n"; key = "db"; action = ":DapToggleBreakpoint"; options = { silent = true; desc = "Toggle Breakpoint"; }; } { mode = "n"; key = "dc"; action = ":DapContinue"; options = { silent = true; desc = "Continue"; }; } { mode = "n"; key = "da"; action = "lua require('dap').continue({ before = get_args })"; options = { silent = true; desc = "Run with Args"; }; } { mode = "n"; key = "dC"; action = "lua require('dap').run_to_cursor()"; options = { silent = true; desc = "Run to cursor"; }; } { mode = "n"; key = "dg"; action = "lua require('dap').goto_()"; options = { silent = true; desc = "Go to line (no execute)"; }; } { mode = "n"; key = "di"; action = ":DapStepInto"; options = { silent = true; desc = "Step into"; }; } { mode = "n"; key = "dj"; action = "\n lua require('dap').down()\n "; options = { silent = true; desc = "Down"; }; } { mode = "n"; key = "dk"; action = "lua require('dap').up()"; options = { silent = true; desc = "Up"; }; } { mode = "n"; key = "dl"; action = "lua require('dap').run_last()"; options = { silent = true; desc = "Run Last"; }; } { mode = "n"; key = "do"; action = ":DapStepOut"; options = { silent = true; desc = "Step Out"; }; } { mode = "n"; key = "dO"; action = ":DapStepOver"; options = { silent = true; desc = "Step Over"; }; } { mode = "n"; key = "dp"; action = "lua require('dap').pause()"; options = { silent = true; desc = "Pause"; }; } { mode = "n"; key = "dr"; action = ":DapToggleRepl"; options = { silent = true; desc = "Toggle REPL"; }; } { mode = "n"; key = "ds"; action = "lua require('dap').session()"; options = { silent = true; desc = "Session"; }; } { mode = "n"; key = "dt"; action = ":DapTerminate"; options = { silent = true; desc = "Terminate"; }; } { mode = "n"; key = "du"; action = "lua require('dapui').toggle()"; options = { silent = true; desc = "Dap UI"; }; } { mode = "n"; key = "dw"; action = "lua require('dap.ui.widgets').hover()"; options = { silent = true; desc = "Widgets"; }; } { mode = [ "n" "v" ]; key = "de"; action = "lua require('dapui').eval()"; options = { silent = true; desc = "Eval"; }; } { mode = "n"; key = "df"; action = "lua require('dap.ext.vscode').load_launchjs()Telescope dap configurations"; options = { desc = "Debug Configurations"; }; } ]; # Allow DAP UI to automatically open and close when possible extraConfigLua = '' require('dap').listeners.after.event_initialized['dapui_config'] = require('dapui').open require('dap').listeners.before.event_terminated['dapui_config'] = require('dapui').close require('dap').listeners.before.event_exited['dapui_config'] = require('dapui').close ''; extraPlugins = [ (pkgs.vimPlugins.telescope-dap-nvim) ]; }