return { "rcarriga/nvim-dap-ui", dependencies = { "mfussenegger/nvim-dap", "mfussenegger/nvim-dap-python", "theHamsta/nvim-dap-virtual-text", "nvim-neotest/nvim-nio" }, keys = { -- Keymaps { "", 'lua require("dap").step_into()', desc = "DAP Step Into", }, { "", 'lua require("dap").step_over()', desc = "DAP Step Over", }, { "", 'lua require("dap").step_out()', desc = "DAP Step Out", }, { "", 'lua require("dap").step_back()', desc = "DAP Step Back", }, { "b", 'lua require("dap").toggle_breakpoint()', desc = "DAP Toggle Breakpoint", }, { "B", "lua require('dap').set_breakpoint(vim.fn.input('Breakpoint condition: '))()", desc = "DAP Set Breakpoint Condition", }, { "Dp", "lua require('dap').set_breakpoint(nil, nil, vim.fn.input('Log point message: '))()", desc = "DAP Set breakpoint log point", }, { "Dr", 'lua require("dap").repl.open()', desc = "DAP Repl Open", }, { "Dl", 'lua require("dap").run_last()', desc = "DAP Run Last", }, { "Do", 'lua require("dapui").toggle()', desc = "DAP-UI Toggle", }, { "Df", 'lua require("dap-python").test_method()', desc = "DAP Test Method", }, { "Dc", 'lua require("dap-python").test_class()', desc = "DAP Test Class", }, { "Ds", 'lua require("dap-python").debug_selection()', "v", desc = "DAP Test Selection", }, }, config = function() local dapui = require("dapui") local dap = require("dap") local dapy = require("dap-python") dapui.setup() require("nvim-dap-virtual-text").setup() -- Adaptors dapy.setup("python") dapy.test_runner = "pytest" dap.listeners.after.event_initialized["dapui_config"] = function() dapui.open() end dap.listeners.before.event_terminated["dapui_config"] = function() dapui.close() end dap.listeners.before.event_exited["dapui_config"] = function() dapui.close() end vim.fn.sign_define("DapBreakpoint", { text = "⚐", texthl = "", linehl = "", numhl = "", }) vim.fn.sign_define("DapBreakpointCondition", { text = "⚑", texthl = "", linehl = "", numhl = "", }) vim.fn.sign_define("DapLogPoint", { text = "✦", texthl = "", linehl = "", numhl = "", }) vim.fn.sign_define("DapStopped", { text = "➜", texthl = "", linehl = "", numhl = "", }) vim.fn.sign_define("DapBreakpointRejected", { text = "✖", texthl = "", linehl = "", numhl = "", }) end, }