nvim-dap adapter for vscode-js-debug.
Every platform supported by vscode is provided. This includes:
Adapter Platform Supportpwa-node
Node.js Full pwa-chrome
Chrome Partial1 pwa-msedge
Edge Untested node-terminal
Node.js Untested pwa-extensionHost
VSCode Extensions Untested
Supports packer, vim-plug, etc. With packer, for example:
use { "mxsdev/nvim-dap-vscode-js", requires = {"mfussenegger/nvim-dap"} }
You must download and build a copy of vscode-js-debug in order to use this plugin.
use { "microsoft/vscode-js-debug", opt = true, run = "npm install --legacy-peer-deps && npx gulp vsDebugServerBundle && mv dist out" }
git clone https://github.com/microsoft/vscode-js-debug cd vscode-js-debug npm install --legacy-peer-deps npx gulp vsDebugServerBundle mv dist out
Note: The upstream build process has changed sometime since the creation of this repo. If the above scripts don't work, please make sure you're using the latest version of
vscode-js-debug
. Otherwise, feel free to file an issue!
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. }) for _, language in ipairs({ "typescript", "javascript" }) do require("dap").configurations[language] = { ... -- see below } end
Note that if vscode-js-debug was installed without packer, its root folder location must be set manually in debugger_path
.
See here for all custom configuration options.
{ { type = "pwa-node", request = "launch", name = "Launch file", program = "${file}", cwd = "${workspaceFolder}", }, { type = "pwa-node", request = "attach", name = "Attach", processId = require'dap.utils'.pick_process, cwd = "${workspaceFolder}", } }
{ { type = "pwa-node", request = "launch", name = "Debug Jest Tests", -- trace = true, -- include debugger info runtimeExecutable = "node", runtimeArgs = { "./node_modules/jest/bin/jest.js", "--runInBand", }, rootPath = "${workspaceFolder}", cwd = "${workspaceFolder}", console = "integratedTerminal", internalConsoleOptions = "neverOpen", } }
You may also want to check out neotest-jest, which supports this plugin out of the box.
{ { type = "pwa-node", request = "launch", name = "Debug Mocha Tests", -- trace = true, -- include debugger info runtimeExecutable = "node", runtimeArgs = { "./node_modules/mocha/bin/mocha.js", }, rootPath = "${workspaceFolder}", cwd = "${workspaceFolder}", console = "integratedTerminal", internalConsoleOptions = "neverOpen", } }
I would like to say a huge thank you to Jens Claes, whose dotfiles this plugin is based off of, and to all members who contributed to this issue - the insight gained from this was paramount to the success of this project.
The debugger runs and attaches, however breakpoints may be rejected. ↩
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4