local dap = require("dap") local dapui = require("dapui") dap.adapters.php = { type = "executable", command = "node", args = { "/path/to/vscode-php-debug/out/phpDebug.js" }, } dap.configurations.php = { { type = "php", request = "launch", name = "Listen for Xdebug", port = 9000, }, } dap.adapters.bashdb = { type = "executable", command = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/bash-debug-adapter", name = "bashdb", } dap.configurations.sh = { { type = "bashdb", request = "launch", name = "Launch file", showDebugOutput = true, pathBashdb = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/extension/bashdb_dir/bashdb", pathBashdbLib = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/extension/bashdb_dir", trace = true, file = "${file}", program = "${file}", cwd = "${workspaceFolder}", pathCat = "cat", pathBash = "/bin/bash", pathMkfifo = "mkfifo", pathPkill = "pkill", args = {}, env = {}, terminalKind = "integrated", }, } dap.adapters.python = { type = "executable", -- command = "path/to/virtualenvs/debugpy/bin/python", command = "python", args = { "-m", "debugpy.adapter" }, } dap.configurations.python = { { -- The first three options are required by nvim-dap type = "python", -- the type here established the link to the adapter definition: `dap.adapters.python` request = "launch", name = "Launch file", }, } dapui.setup() 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.keymap.set("n", "", function() require("dap").continue() end) vim.keymap.set("n", "", function() require("dap").step_over() end) vim.keymap.set("n", "", function() require("dap").step_into() end) vim.keymap.set("n", "", function() require("dap").step_out() end) vim.keymap.set("n", "b", function() require("dap").toggle_breakpoint() end) vim.keymap.set("n", "B", function() require("dap").set_breakpoint() end) vim.keymap.set("n", "lp", function() require("dap").set_breakpoint(nil, nil, vim.fn.input("Log point message: ")) end) vim.keymap.set("n", "dr", function() require("dap").repl.open() end) vim.keymap.set("n", "dl", function() require("dap").run_last() end) vim.keymap.set({ "n", "v" }, "dh", function() require("dap.ui.widgets").hover() end) vim.keymap.set({ "n", "v" }, "dp", function() require("dap.ui.widgets").preview() end) vim.keymap.set("n", "df", function() local widgets = require("dap.ui.widgets") widgets.centered_float(widgets.frames) end) vim.keymap.set("n", "ds", function() local widgets = require("dap.ui.widgets") widgets.centered_float(widgets.scopes) end)