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( "n", "dt", dapui.toggle, { desc = "Toggle Debugger UI" } ) vim.keymap.set( "n", "db", dap.toggle_breakpoint, { desc = "Toggle Breakpoint" } ) vim.keymap.set( "n", "dc", dap.continue, { desc = "Debugger Continue" } ) vim.keymap.set( "n", "dx", dap.terminate, { desc = "Debugger Terminate" } ) vim.keymap.set( "n", "ds", dap.step_over, { desc = "Debugger Step Over" } ) -- 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, }, require("plugins.editor.debugging.debugging_go"), }