local K = require('core.keymap') return { 'mfussenegger/nvim-dap', dependencies = { 'rcarriga/nvim-dap-ui', 'nvim-neotest/nvim-nio', }, config = function() -- Setup Debugging -- local dap = require('dap') -- Open UI on Debugging -- local dapui = require('dapui') dapui.setup({ layouts = { { elements = { { id = 'scopes', size = 0.65 }, { id = 'breakpoints', size = 0.35 }, }, position = 'left', size = 40, }, { elements = { { id = 'repl', size = 0.5 }, { id = 'console', size = 0.5 }, }, position = 'bottom', size = 10, }, }, }) dap.listeners.before.attach.dapui_config = function() dapui.open() end dap.listeners.before.launch.dapui_config = function() dapui.open() end -- Keybinding -- vim.keymap.set( K.DEBUGGING.TOGGLE_UI.mode, K.DEBUGGING.TOGGLE_UI.shortcut, dapui.toggle, { desc = K.DEBUGGING.TOGGLE_UI.dedescriptionn } ) vim.keymap.set( K.DEBUGGING.TOGGLE_BREAKPOINT.mode, K.DEBUGGING.TOGGLE_BREAKPOINT.shortcut, dap.toggle_breakpoint, { desc = K.DEBUGGING.TOGGLE_BREAKPOINT.dedescriptionn } ) vim.keymap.set( K.DEBUGGING.CONTINUE.mode, K.DEBUGGING.CONTINUE.shortcut, dap.continue, { desc = K.DEBUGGING.CONTINUE.dedescriptionn } ) vim.keymap.set( K.DEBUGGING.TERMINATE.mode, K.DEBUGGING.TERMINATE.shortcut, dap.terminate, { desc = K.DEBUGGING.TERMINATE.dedescriptionn } ) vim.keymap.set( K.DEBUGGING.STEP_OVER.mode, K.DEBUGGING.STEP_OVER.shortcut, dap.step_over, { desc = K.DEBUGGING.STEP_OVER.dedescriptionn } ) -- Breakpoints -- vim.api.nvim_set_hl( 0, 'DapBreakpoint', { ctermbg = 0, fg = '#993939', bg = '#31353f' } ) vim.api.nvim_set_hl( 0, 'DapLogPoint', { ctermbg = 0, fg = '#61afef', bg = '#31353f' } ) vim.api.nvim_set_hl( 0, 'DapStopped', { ctermbg = 0, fg = '#98c379', bg = '#31353f' } ) vim.fn.sign_define('DapBreakpoint', { text = '', texthl = 'DapBreakpoint', linehl = 'DapBreakpoint', numhl = 'DapBreakpoint', }) vim.fn.sign_define('DapBreakpointCondition', { text = '󰣏', texthl = 'DapBreakpoint', linehl = 'DapBreakpoint', numhl = 'DapBreakpoint', }) vim.fn.sign_define('DapBreakpointRejected', { text = '', texthl = 'DapBreakpoint', linehl = 'DapBreakpoint', numhl = 'DapBreakpoint', }) vim.fn.sign_define('DapLogPoint', { text = '', texthl = 'DapLogPoint', linehl = 'DapLogPoint', numhl = 'DapLogPoint', }) vim.fn.sign_define('DapStopped', { text = '', texthl = 'DapStopped', linehl = 'DapStopped', numhl = 'DapStopped', }) end, }