return { "rcarriga/nvim-dap-ui", dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio", }, lazy = true, config = function() require("dapui").setup({ controls = { element = "repl", enabled = true, icons = { disconnect = "", run_last = "", terminate = "⏹︎", pause = "⏸︎", play = "", step_into = "󰆹", step_out = "󰆸", step_over = "", step_back = "", }, }, floating = { border = "single", mappings = { close = { "q", "" }, }, }, icons = { collapsed = "", expanded = "", current_frame = "", }, layouts = { { elements = { { id = "stacks", size = 0.25 }, { id = "scopes", size = 0.25 }, { id = "breakpoints", size = 0.25 }, { id = "watches", size = 0.25 }, }, position = "left", size = 40, }, { elements = { { id = "repl", size = 0.4 }, { id = "console", size = 0.6 }, }, position = "bottom", size = 10, }, }, }) local dap, dapui = require("dap"), require("dapui") local group = vim.api.nvim_create_augroup("dapui_config", { clear = true }) -- hide ~ in DAPUI vim.api.nvim_create_autocmd("BufWinEnter", { group = group, pattern = "DAP*", callback = function() vim.wo.fillchars = "eob: " end, }) vim.api.nvim_create_autocmd("BufWinEnter", { group = group, pattern = "\\[dap\\-repl\\]", callback = function() vim.wo.fillchars = "eob: " end, }) 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 end, }