diff options
author | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-10-16 02:19:39 +0200 |
---|---|---|
committer | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-10-16 02:19:42 +0200 |
commit | d4bbff517b54383876e84204707fcb21cf69d48d (patch) | |
tree | e9a70dd2037cc200b2252014c4325becc422ec3b /after/plugin/dap.lua | |
parent | 36459bee543d1ea809bf66178b8ed933a44f77b5 (diff) |
checkpoint
Diffstat (limited to 'after/plugin/dap.lua')
-rw-r--r-- | after/plugin/dap.lua | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/after/plugin/dap.lua b/after/plugin/dap.lua new file mode 100644 index 0000000..fd141bb --- /dev/null +++ b/after/plugin/dap.lua @@ -0,0 +1,75 @@ +local dap = require("dap") +local dapui = require("dapui") +local widgets = require("dap.ui.widgets") +local map = vim.keymap.set + +dapui.setup() +-- stylua: ignore start +map("n", " bu", function() dapui.toggle() end, { desc = "Toggle dap-ui" }) +map("n", " bb", function() dap.toggle_breakpoint() end, { desc = "Toggle breakpoint" }) +map("n", " bc", function() dap.continue() end, {desc="Continue"}) +map("n", " bs", function() dap.step_over() end, {desc="Step over"}) +map("n", " bi", function() dap.step_into() end, {desc="Step into"}) +map("n", " bo", function() dap.step_out() end, {desc="Step out"}) +map({ "n", "v" }, " bh", function() widgets.hover() end, {desc="Show hover"}) +map({ "n", "v" }, " bv", function() widgets.preview() end, {desc="Show preview"}) +map("n", " bf", function() widgets.centered_float(widgets.frames) end, {desc="Show frames"}) +map("n", " bp", function() widgets.centered_float(widgets.scopes) end, {desc="Show scopes"}) +-- stylua: ignore end +map("n", " bl", function() + dap.set_breakpoint(nil, nil, vim.fn.input("Log point message: ")) +end, { desc = "Break point with log" }) + +dap.adapters.gdb = { + id = "gdb", + type = "executable", + command = "gdb", + args = { "--quiet", "--interpreter=dap" }, +} + +dap.configurations.c = { + { + name = "Run (GDB)", + type = "gdb", + request = "launch", + -- This requires special handling of 'run_last', see + -- https://github.com/mfussenegger/nvim-dap/issues/1025#issuecomment-1695852355 + program = function() + local path = vim.fn.input({ + prompt = "Path to executable: ", + default = vim.fn.getcwd() .. "/", + completion = "file", + }) + + return (path and path ~= "") and path or dap.ABORT + end, + }, + { + name = "Run with arguments (GDB)", + type = "gdb", + request = "launch", + -- This requires special handling of 'run_last', see + -- https://github.com/mfussenegger/nvim-dap/issues/1025#issuecomment-1695852355 + program = function() + local path = vim.fn.input({ + prompt = "Path to executable: ", + default = vim.fn.getcwd() .. "/", + completion = "file", + }) + + return (path and path ~= "") and path or dap.ABORT + end, + args = function() + local args_str = vim.fn.input({ + prompt = "Arguments: ", + }) + return vim.split(args_str, " +") + end, + }, + { + name = "Attach to process (GDB)", + type = "gdb", + request = "attach", + processId = require("dap.utils").pick_process, + }, +} |