return { { "rcarriga/nvim-dap-ui", lazy = true, event = "BufRead", dependencies = { { "mfussenegger/nvim-dap", lazy = true }, { "nvim-neotest/nvim-nio", lazy = true }, { "theHamsta/nvim-dap-virtual-text", opts = { virt_text_win_col = 80, }, }, }, config = function() require("pcode.user.dapui") end, keys = { { "d", "", desc = "  Debug" }, { "dt", "lua require'dap'.toggle_breakpoint()", desc = "Toggle Breakpoint" }, { "db", "lua require'dap'.step_back()", desc = "Step Back" }, { "dc", "lua require'dap'.continue()", desc = "Continue" }, { "dC", "lua require'dap'.run_to_cursor()", desc = "Run To Cursor" }, { "dd", "lua require'dap'.disconnect()", desc = "Disconnect" }, { "dg", "lua require'dap'.session()", desc = "Get Session" }, { "di", "lua require'dap'.step_into()", desc = "Step Into" }, { "do", "lua require'dap'.step_over()", desc = "Step Over" }, { "du", "lua require'dap'.step_out()", desc = "Step Out" }, { "dp", "lua require'dap'.pause()", desc = "Pause" }, { "dr", "lua require'dap'.repl.toggle()", desc = "Toggle Repl" }, { "ds", "lua require'dap'.continue()", desc = "Start" }, { "dq", "lua require'dap'.close()", desc = "Quit" }, { "dU", "lua require'dapui'.toggle({reset = true})", desc = "Toggle UI" }, }, }, { "jay-babu/mason-nvim-dap.nvim", lazy = true, event = "BufRead", dependencies = { "williamboman/mason.nvim", "mfussenegger/nvim-dap" }, opts = function(_, opts) opts.ensure_installed = opts.ensure_installed or {} vim.list_extend(opts.ensure_installed, {}) opts.automatic_setup = true opts.handlers = { function(config) -- all sources with no handler get passed here -- Keep original functionality require("mason-nvim-dap").default_setup(config) end, } return opts end, -- enabled = vim.fn.has("win32") == 0, config = function(_, opts) require("mason").setup() require("mason-nvim-dap").setup(opts) end, }, }