local M = {} M.config = function() options.builtin.dap = { active = false, on_config_done = nil, breakpoint = { text = "", texthl = "LspDiagnosticsSignError", linehl = "", numhl = "", }, breakpoint_rejected = { text = "", texthl = "LspDiagnosticsSignHint", linehl = "", numhl = "", }, stopped = { text = "", texthl = "LspDiagnosticsSignInformation", linehl = "DiagnosticUnderlineInfo", numhl = "LspDiagnosticsSignInformation", }, } end M.setup = function() local dap = require "dap" vim.fn.sign_define("DapBreakpoint", options.builtin.dap.breakpoint) vim.fn.sign_define("DapBreakpointRejected", options.builtin.dap.breakpoint_rejected) vim.fn.sign_define("DapStopped", options.builtin.dap.stopped) 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" }, } if options.builtin.dap.on_config_done then options.builtin.dap.on_config_done(dap) end end -- TODO put this up there ^^^ call in ftplugin -- M.dap = function() -- if options.plugin.dap.active then -- local dap_install = require "dap-install" -- dap_install.config("python_dbg", {}) -- end -- end -- -- M.dap = function() -- -- gem install readapt ruby-debug-ide -- if options.plugin.dap.active then -- local dap_install = require "dap-install" -- dap_install.config("ruby_vsc_dbg", {}) -- end -- end return M