summaryrefslogtreecommitdiff
path: root/lua/lvim/core/dap.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/lvim/core/dap.lua')
-rw-r--r--lua/lvim/core/dap.lua76
1 files changed, 76 insertions, 0 deletions
diff --git a/lua/lvim/core/dap.lua b/lua/lvim/core/dap.lua
new file mode 100644
index 00000000..d9b59641
--- /dev/null
+++ b/lua/lvim/core/dap.lua
@@ -0,0 +1,76 @@
+local M = {}
+
+M.config = function()
+ lvim.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", lvim.builtin.dap.breakpoint)
+ vim.fn.sign_define("DapBreakpointRejected", lvim.builtin.dap.breakpoint_rejected)
+ vim.fn.sign_define("DapStopped", lvim.builtin.dap.stopped)
+
+ dap.defaults.fallback.terminal_win_cmd = "50vsplit new"
+
+ lvim.builtin.which_key.mappings["d"] = {
+ name = "Debug",
+ t = { "<cmd>lua require'dap'.toggle_breakpoint()<cr>", "Toggle Breakpoint" },
+ b = { "<cmd>lua require'dap'.step_back()<cr>", "Step Back" },
+ c = { "<cmd>lua require'dap'.continue()<cr>", "Continue" },
+ C = { "<cmd>lua require'dap'.run_to_cursor()<cr>", "Run To Cursor" },
+ d = { "<cmd>lua require'dap'.disconnect()<cr>", "Disconnect" },
+ g = { "<cmd>lua require'dap'.session()<cr>", "Get Session" },
+ i = { "<cmd>lua require'dap'.step_into()<cr>", "Step Into" },
+ o = { "<cmd>lua require'dap'.step_over()<cr>", "Step Over" },
+ u = { "<cmd>lua require'dap'.step_out()<cr>", "Step Out" },
+ p = { "<cmd>lua require'dap'.pause.toggle()<cr>", "Pause" },
+ r = { "<cmd>lua require'dap'.repl.toggle()<cr>", "Toggle Repl" },
+ s = { "<cmd>lua require'dap'.continue()<cr>", "Start" },
+ q = { "<cmd>lua require'dap'.close()<cr>", "Quit" },
+ }
+
+ if lvim.builtin.dap.on_config_done then
+ lvim.builtin.dap.on_config_done(dap)
+ end
+end
+
+-- TODO put this up there ^^^ call in ftplugin
+
+-- M.dap = function()
+-- if lvim.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 lvim.plugin.dap.active then
+-- local dap_install = require "dap-install"
+-- dap_install.config("ruby_vsc_dbg", {})
+-- end
+-- end
+
+return M