local M = {} if pcode.nvim_dap then M = { { "rcarriga/nvim-dap-ui", lazy = true, event = "BufRead", dependencies = { { "mfussenegger/nvim-dap", lazy = true }, { "nvim-neotest/nvim-nio", lazy = true }, { "theHamsta/nvim-dap-virtual-text", opts = { virt_text_win_col = 80, }, }, }, -- enabled = vim.fn.has("win32") == 0, config = function() require("user.dapui") -- add diff langue vs filetype local keymap = { ["c++"] = "cpp", ["c#"] = "cs", ["jsx"] = "javascriptreact", } local mason_reg = require("mason-registry") local opts = {} for _, pkg in pairs(mason_reg.get_installed_packages()) do for _, type in pairs(pkg.spec.categories) do if type == "DAP" then for _, ft in pairs(pkg.spec.languages) do local ftl = string.lower(ft) local ready = mason_reg.get_package(pkg.spec.name):is_installed() if ready then if keymap[ftl] ~= nil then ftl = keymap[ftl] local require_ok, conf_opts = pcall(require, "user.dap.settings." .. ftl) if require_ok then opts = vim.tbl_deep_extend("force", conf_opts, opts) end require("dap").dapters[ftl] = opts end end end end end end end, keys = { { "d", "", desc = "  Debug" }, { "dt", "lua require'dap'.toggle_breakpoint()", desc = "Toggle Breakpoint" }, { "db", "lua require'dap'.step_back()", desc = "Step Back" }, { "dc", "lua require'dap'.continue()", desc = "Continue" }, { "dC", "lua require'dap'.run_to_cursor()", desc = "Run To Cursor" }, { "dd", "lua require'dap'.disconnect()", desc = "Disconnect" }, { "dg", "lua require'dap'.session()", desc = "Get Session" }, { "di", "lua require'dap'.step_into()", desc = "Step Into" }, { "do", "lua require'dap'.step_over()", desc = "Step Over" }, { "du", "lua require'dap'.step_out()", desc = "Step Out" }, { "dp", "lua require'dap'.pause()", desc = "Pause" }, { "dr", "lua require'dap'.repl.toggle()", desc = "Toggle Repl" }, { "ds", "lua require'dap'.continue()", desc = "Start" }, { "dq", "lua require'dap'.close()", desc = "Quit" }, { "dU", "lua require'dapui'.toggle({reset = true})", desc = "Toggle UI" }, }, }, { "jay-babu/mason-nvim-dap.nvim", lazy = true, event = "BufRead", dependencies = { "williamboman/mason.nvim", "mfussenegger/nvim-dap" }, -- enabled = vim.fn.has("win32") == 0, config = function() require("user.mason_dap") end, }, } end return M