require("dap-vscode-js").setup({ -- node_path = "node", -- Path of node executable. Defaults to $NODE_PATH, and then "node" -- debugger_path = "(runtimedir)/site/pack/packer/opt/vscode-js-debug", -- Path to vscode-js-debug installation. -- debugger_cmd = { "js-debug-adapter" }, -- Command to use to launch the debug server. Takes precedence over `node_path` and `debugger_path`. adapters = { 'pwa-node', 'pwa-chrome', 'pwa-msedge', 'node-terminal', 'pwa-extensionHost' }, -- which adapters to register in nvim-dap -- log_file_path = "(stdpath cache)/dap_vscode_js.log" -- Path for file logging -- log_file_level = false -- Logging level for output to file. Set to false to disable file logging. -- log_console_level = vim.log.levels.ERROR -- Logging level for output to console. Set to false to disable console output. }) local dap = require('dap') for _, language in ipairs({ "typescript", "javascript" }) do dap.configurations[language] = { { type = "pwa-node", request = "attach", name = "Attach", port = 9229, cwd = "${workspaceFolder}", }, } end dap.adapters.codelldb = { type = 'server', port = "${port}", executable = { command = '/usr/bin/codelldb', args = {"--port", "${port}"}, } } dap.configurations.rust = { { name = "Rust debug", type = "codelldb", request = "launch", program = function() vim.fn.jobstart('cargo build') -- cargo metadata --no-deps --format-version 1 | jq -r '.target_directory' -- cargo metadata --no-deps --format-version 1 | jq -r '.packages[].targets[] | select( .kind | map(. == "bin") | any ) | .name' return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/target/debug/', 'file') end, cwd = '${workspaceFolder}', stopOnEntry = true, showDisassembly = "never", }, } local dapui = require('dapui') dapui.setup() require("nvim-dap-virtual-text").setup() vim.keymap.set('n', 'du', dapui.toggle) vim.keymap.set('n', 'b', dap.toggle_breakpoint) vim.keymap.set('n', 'c', dap.continue) vim.keymap.set('n', 'o', dap.step_over) vim.keymap.set('n', 'i', dap.step_into) vim.keymap.set('n', 'q', dap.terminate)