gabrielgio.lua @ d5d80f71623aa5c13f7f21eeb602b60ffbc92fa6

  1local key = require("gabrielgio.key")
  2local dap = require("dap")
  3local dapui = require("dapui")
  4
  5key.nnoremap("<F5>", ":lua require'dap'.continue()<CR>")
  6key.nnoremap("<F10>", ":lua require'dap'.step_over()<CR>")
  7key.nnoremap("<F11>", ":lua require'dap'.step_into()<CR>")
  8key.nnoremap("<F12>", ":lua require'dap'.step_out()<CR>")
  9key.nnoremap("<leader>b", ":lua require'dap'.toggle_breakpoint()<CR>")
 10key.nnoremap("<leader>B", ":lua require'dap'.set_breakpoint(vim.fn.input('Condition: '))<CR>")
 11key.nnoremap("<leader>dr", ":lua require'dap'.repl.open()<CR>")
 12key.nnoremap("<Alt-k>", "<Cmd>lua require'dapui'.eval()<CR>")
 13
 14dap.listeners.before.attach.dapui_config = function()
 15	dapui.open()
 16end
 17dap.listeners.before.launch.dapui_config = function()
 18	dapui.open()
 19end
 20dap.listeners.before.event_terminated.dapui_config = function()
 21	dapui.close()
 22end
 23dap.listeners.before.event_exited.dapui_config = function()
 24	dapui.close()
 25end
 26
 27vim.keymap.set("n", "<leader>di", require("dap.ui.widgets").hover)
 28
 29dap.adapters.delve = {
 30	type = "server",
 31	host = "127.0.0.1",
 32	port = 2345,
 33}
 34
 35dap.adapters.gdb = {
 36	id = "gdb",
 37	type = "executable",
 38	command = "gdb",
 39	args = { "--interpreter=dap", "--eval-command", "set print pretty on" },
 40}
 41
 42dap.adapters.lldb = {
 43	type = "executable",
 44	command = "lldb-vscode", -- adjust as needed, must be absolute path
 45	name = "lldb",
 46}
 47
 48dap.configurations.go = {
 49	{
 50		type = "delve",
 51		name = "remote",
 52		mode = "remote",
 53		request = "attach",
 54		connect = {
 55			host = "127.0.0.1",
 56			port = "2345",
 57		},
 58	},
 59}
 60dap.configurations.zig = {
 61	{
 62		name = "Launch",
 63		type = "gdb",
 64		request = "launch",
 65		program = function()
 66			return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")
 67		end,
 68		cwd = "${workspaceFolder}",
 69		stopAtBeginningOfMainSubprogram = false,
 70		args = function()
 71			local args_str = vim.fn.input({
 72				prompt = "Arguments: ",
 73			})
 74			return vim.split(args_str, " +")
 75		end,
 76	},
 77	{
 78		name = "Launch",
 79		type = "lldb",
 80		request = "launch",
 81		program = function()
 82			return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")
 83		end,
 84		cwd = "${workspaceFolder}",
 85		stopAtBeginningOfMainSubprogram = false,
 86		args = function()
 87			local args_str = vim.fn.input({
 88				prompt = "Arguments: ",
 89			})
 90			return vim.split(args_str, " +")
 91		end,
 92	},
 93}
 94
 95dapui.setup({
 96	layouts = {
 97		{
 98			elements = {
 99				{
100					id = "watches",
101					size = 1,
102				},
103			},
104			position = "bottom",
105			size = 10,
106		},
107	},
108})