local dap = require("dap") local dapui = require("dapui") local dapgo = require("dap-go") dapui.setup({ controls = { element = "repl", enabled = true, icons = { disconnect = "", pause = "", play = "", run_last = "", step_back = "", step_into = "", step_out = "", step_over = "", terminate = "" } }, element_mappings = {}, expand_lines = false, floating = { border = "single", mappings = { close = { "q", "" } } }, force_buffers = true, icons = { collapsed = "", current_frame = "", expanded = "" }, layouts = { { elements = { { id = "repl", size = 0.5 }, { id = "scopes", size = 0.5 } }, position = "bottom", size = 10 }, { elements = { { id = "breakpoints", size = 0.5 }, { id = "stacks", size = 0.5 } }, position = "left", size = 40 } }, mappings = { edit = "e", expand = { "", "<2-LeftMouse>" }, open = "o", remove = "d", repl = "r", toggle = "t" }, render = { indent = 1, max_value_lines = 100 } }) dapgo.setup() -- Auto Open UI dap.listeners.before.attach.dapui_config = function() dapui.open() end dap.listeners.before.launch.dapui_config = function() dapui.open() end -- Continue Hotkey ("c") vim.api.nvim_create_autocmd("FileType", { pattern = "dap-repl", callback = function() vim.api.nvim_buf_set_keymap(0, 'n', 'c', "lua require'dap'.continue()", { noremap = true, silent = true }) end }) -- Create KeyMaps local opts = { noremap = true, silent = true } vim.keymap.set('n', 'db', dap.toggle_breakpoint, vim.tbl_extend("force", { desc = "Toggle Breakpoint" }, opts)) vim.keymap.set('n', 'dc', dap.continue, vim.tbl_extend("force", { desc = "Continue" }, opts)) vim.keymap.set('n', 'dt', dapgo.debug_test, vim.tbl_extend("force", { desc = "Run Test" }, opts)) vim.keymap.set('n', 'du', dapui.toggle, vim.tbl_extend("force", { desc = "Toggle UI" }, opts))