local M = {} local Log = require "core.log" M.config = function() options.builtin.dap = { active = false, breakpoint = { text = "", texthl = "LspDiagnosticsSignError", linehl = "", numhl = "", }, } end M.setup = function() local status_ok, dap = pcall(require, "dap") if not status_ok then Log:get_default().error "Failed to load dap" return end vim.fn.sign_define("DapBreakpoint", options.builtin.dap.breakpoint) dap.defaults.fallback.terminal_win_cmd = "50vsplit new" options.builtin.which_key.mappings["d"] = { name = "Debug", t = { "lua require'dap'.toggle_breakpoint()", "Toggle Breakpoint" }, b = { "lua require'dap'.step_back()", "Step Back" }, c = { "lua require'dap'.continue()", "Continue" }, C = { "lua require'dap'.run_to_cursor()", "Run To Cursor" }, d = { "lua require'dap'.disconnect()", "Disconnect" }, g = { "lua require'dap'.session()", "Get Session" }, i = { "lua require'dap'.step_into()", "Step Into" }, o = { "lua require'dap'.step_over()", "Step Over" }, u = { "lua require'dap'.step_out()", "Step Out" }, p = { "lua require'dap'.pause.toggle()", "Pause" }, r = { "lua require'dap'.repl.toggle()", "Toggle Repl" }, s = { "lua require'dap'.continue()", "Start" }, q = { "lua require'dap'.close()", "Quit" }, } end return M