diff options
Diffstat (limited to 'lua/gabrielgio')
-rw-r--r-- | lua/gabrielgio/dap.lua | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/lua/gabrielgio/dap.lua b/lua/gabrielgio/dap.lua index c5f316b..c5059c6 100644 --- a/lua/gabrielgio/dap.lua +++ b/lua/gabrielgio/dap.lua @@ -1,5 +1,6 @@ local dap = require("dap") local key = require("gabrielgio.key") +local dapui = require("dapui") key.nnoremap("<F5>", ":lua require'dap'.continue()<CR>") key.nnoremap("<F10>", ":lua require'dap'.step_over()<CR>") @@ -8,6 +9,7 @@ key.nnoremap("<F12>", ":lua require'dap'.step_out()<CR>") key.nnoremap("<leader>b", ":lua require'dap'.toggle_breakpoint()<CR>") key.nnoremap("<leader>B", ":lua require'dap'.set_breakpoint(vim.fn.input('Condition: '))<CR>") key.nnoremap("<leader>dr", ":lua require'dap'.repl.open()<CR>") +key.nnoremap("<Alt-k>", "<Cmd>lua require'dapui'.eval()<CR>") dap.adapters.delve = { type = "server", @@ -15,6 +17,19 @@ dap.adapters.delve = { port = 2345, } +dap.adapters.gdb = { + id = "gdb", + type = "executable", + command = "gdb", + args = { "--interpreter=dap", "--eval-command", "set print pretty on" }, +} + +dap.adapters.lldb = { + type = "executable", + command = "lldb-vscode", -- adjust as needed, must be absolute path + name = "lldb", +} + dap.configurations.go = { { type = "delve", @@ -27,3 +42,52 @@ dap.configurations.go = { }, }, } +dap.configurations.zig = { + { + name = "Launch", + type = "gdb", + request = "launch", + program = function() + return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") + end, + cwd = "${workspaceFolder}", + stopAtBeginningOfMainSubprogram = false, + args = function() + local args_str = vim.fn.input({ + prompt = "Arguments: ", + }) + return vim.split(args_str, " +") + end, + }, + { + name = "Launch", + type = "lldb", + request = "launch", + program = function() + return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") + end, + cwd = "${workspaceFolder}", + stopAtBeginningOfMainSubprogram = false, + args = function() + local args_str = vim.fn.input({ + prompt = "Arguments: ", + }) + return vim.split(args_str, " +") + end, + }, +} + +dapui.setup({ + layouts = { + { + elements = { + { + id = "watches", + size = 1, + }, + }, + position = "bottom", + size = 10, + }, + }, +}) |