return { { 'rcarriga/nvim-dap-ui', event = 'VeryLazy', dependencies = { 'nvim-neotest/nvim-nio', }, }, { 'mfussenegger/nvim-dap', event = 'VeryLazy', dependencies = { 'leoluz/nvim-dap-go', 'rcarriga/nvim-dap-ui', }, config = function() local d = require('dap') local w = require('dap.ui.widgets') local ui = require('dapui') require('dap-go').setup() ui.setup() local scopes = nil vim.keymap.set('n', 'za', function() ui.toggle() end, { desc = 'toggle dapui' }) vim.keymap.set('n', 'zz', function() scopes = w.sidebar(w.scopes, {}, 'split') d.continue() end, { desc = 'start debugger' }) vim.keymap.set('n', 'zn', function() d.step_over() end, { desc = 'step over' }) vim.keymap.set('n', 'zi', function() d.step_into() end, { desc = 'step into' }) vim.keymap.set('n', 'zo', function() d.step_out() end, { desc = 'step out' }) vim.keymap.set('n', 'zx', function() d.toggle_breakpoint() end, { desc = 'toggle_breakpoint' }) vim.keymap.set('n', 'zr', function() d.run_last() end, { desc = 'run prev' }) vim.keymap.set({ 'n', 'v' }, 'zh', function() ui.eval() end, { desc = 'hover' }) vim.keymap.set({ 'n', 'v' }, 'zp', function() require('dap.ui.widgets').preview() end, { desc = 'preview' }) vim.keymap.set('n', 'zf', function() local widgets = require('dap.ui.widgets') widgets.centered_float(widgets.frames) end, { desc = 'view frames' }) vim.keymap.set('n', 'zs', function() scopes.toggle() end, { desc = 'toggle scope view' }) end, }, }