--[[ DEBUGGING.LUA nvim-dap for Python and JavaScript/TypeScript debugging Requirements: Python: pip install debugpy JS/TS: Build vscode-js-debug manually (see below) ]] return { { "mfussenegger/nvim-dap" }, { "nvim-neotest/nvim-nio" }, { "rcarriga/nvim-dap-ui", dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" }, config = function() local dap, dapui = require("dap"), require("dapui") dapui.setup() dap.listeners.after.event_initialized["dapui_config"] = dapui.open vim.keymap.set("n", "", dap.continue, { desc = "Continue" }) vim.keymap.set("n", "", dap.step_over, { desc = "Step over" }) vim.keymap.set("n", "", dap.step_into, { desc = "Step into" }) vim.keymap.set("n", "", dap.step_out, { desc = "Step out" }) vim.keymap.set("n", "", dap.toggle_breakpoint, { desc = "Breakpoint" }) vim.keymap.set("n", "du", dapui.toggle, { desc = "DAP UI" }) end, }, { "mfussenegger/nvim-dap-python", dependencies = { "mfussenegger/nvim-dap" } }, } --[[ To enable JS/TS debugging: 1. Build vscode-js-debug: git clone https://github.com/microsoft/vscode-js-debug cd vscode-js-debug npm install --legacy-peer-deps npx gulp vsDebugServerBundle && mv dist out 2. Add this plugin (uncomment inside the return block above): { "mxsdev/nvim-dap-vscode-js", dependencies = { "mfussenegger/nvim-dap" }, config = function() require("dap-vscode-js").setup({ adapters = { "pwa-node", "pwa-chrome" }, }) for _, language in ipairs({ "typescript", "javascript" }) do require("dap").configurations[language] = { { type = "pwa-node", request = "launch", name = "Launch file", program = "${file}", cwd = "${workspaceFolder}", }, { type = "pwa-node", request = "attach", name = "Attach to process", processId = require("dap.utils").pick_process, cwd = "${workspaceFolder}", }, } end end, }, --]]