return { { "mfussenegger/nvim-dap", dependencies = { { "igorlfs/nvim-dap-view", ---@module 'dap-view' ---@type dapview.Config opts = { auto_toggle = true, switchbuf = "useopen,uselast", winbar = { sections = { "watches", "scopes", "breakpoints", "repl", "console" }, controls = { enabled = true, }, }, windows = { terminal = { start_hidden = true, } } }, }, }, config = function() local dap = require("dap") dap.adapters.codelldb = { type = "executable", command = "codelldb", } dap.listeners.before['event_initialized']['toggle_lsp_virtual_text'] = function() vim.lsp.inlay_hint.enable(false) end dap.listeners.after['event_terminated']['toggle_lsp_virtual_text'] = function() vim.lsp.inlay_hint.enable(true) end require("nvim-dap-virtual-text").setup() end, keys = { { "dd", function() local dap = require("dap") if dap.status() == "" then dap.run_last() else dap.restart() end end, desc = "Run last or restart debugger" }, { "db", function() require("dap").toggle_breakpoint() end, desc = "Toggle breakpoint" }, { "dB", function() vim.ui.input({ prompt = "Breakpoint condition: " }, function(input) require("dap").set_breakpoint(input) end) end, desc = "Conditional Breakpoint", }, { "dw", function() require("dap-view").add_expr() end, desc = "Watch expresion under cursor", mode = { "n", "v" } }, { "dW", function() vim.ui.input({ prompt = "Watch expresion: " }, function(input) require("dap-view").add_expr(input) end) end, desc = "Watch expression", }, { "dj", function() require("dap").step_over() end, desc = "Step over" }, { "dJ", function() require("dap").continue() end, desc = "Continue" }, { "dl", function() require("dap").step_into() end, desc = "Step into" }, { "dk", function() require("dap").step_out() end, desc = "Step out" }, { "dh", function() require("dap.ui.widgets").hover() end, desc = "Show expresion under cursor" }, { "dx", function() require("dap").clear_breakpoints() end, desc = "Clear breakpoint" }, { "dX", function() require("dap").terminate() end, desc = "Terminate" }, { "ud", function() require("dap-view").toggle(true) end, desc = "Toggle dap-view" }, } }, { "theHamsta/nvim-dap-virtual-text", dependencies = { "mfussenegger/nvim-dap", "nvim-treesitter/nvim-treesitter" }, config = function() require('nvim-dap-virtual-text').setup({ only_first_definition = false, all_references = true, virt_text_pos = "eol", }) end }, }