From 501f27ac478ca04ad22bca8a1cb6b3ba1df507cd Mon Sep 17 00:00:00 2001 From: ofrades Date: Tue, 30 May 2023 21:44:10 +0100 Subject: [PATCH] feat(dap): add extra for dap js --- lua/lazyvim/plugins/extras/dap/vscode-js.lua | 90 ++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 lua/lazyvim/plugins/extras/dap/vscode-js.lua diff --git a/lua/lazyvim/plugins/extras/dap/vscode-js.lua b/lua/lazyvim/plugins/extras/dap/vscode-js.lua new file mode 100644 index 00000000..0e8fa5ba --- /dev/null +++ b/lua/lazyvim/plugins/extras/dap/vscode-js.lua @@ -0,0 +1,90 @@ +return { + "mfussenegger/nvim-dap", + + dependencies = { + { + "microsoft/vscode-js-debug", + build = "npm install --legacy-peer-deps && npx gulp vsDebugServerBundle && mv dist out", + tag = "v1.*", + }, + { + "mxsdev/nvim-dap-vscode-js", + config = function() + local vscodeJsDebugPath = vim.fn.stdpath("data") .. "/lazy/vscode-js-debug" + + require("dap-vscode-js").setup({ + adapters = { "pwa-node", "pwa-chrome", "pwa-msedge", "node-terminal", "pwa-extensionHost" }, + debugger_path = vscodeJsDebugPath, + }) + for _, language in ipairs({ "typescript", "javascript", "typescriptreact", "javascriptreact" }) do + require("dap").configurations[language] = { + { + type = "pwa-node", + request = "attach", + name = "Attach Program (pwa-node, select pid)", + cwd = "${workspaceFolder}", + processId = require("dap.utils").pick_process, + skipFiles = { "/**" }, + }, + { + type = "pwa-node", + request = "launch", + name = "Launch Current File (pwa-node)", + cwd = vim.fn.getcwd(), + args = { "${file}" }, + sourceMaps = true, + protocol = "inspector", + }, + { + type = "pwa-node", + request = "launch", + name = "Launch Current File (pwa-node with deno)", + cwd = vim.fn.getcwd(), + runtimeArgs = { "run", "--inspect-brk", "--allow-all", "${file}" }, + runtimeExecutable = "deno", + attachSimplePort = 9229, + }, + { + type = "pwa-node", + request = "launch", + name = "Launch Test Current File (pwa-node with jest)", + cwd = vim.fn.getcwd(), + runtimeArgs = { "${workspaceFolder}/node_modules/.bin/jest" }, + runtimeExecutable = "node", + args = { "${file}", "--coverage", "false" }, + rootPath = "${workspaceFolder}", + sourceMaps = true, + console = "integratedTerminal", + internalConsoleOptions = "neverOpen", + skipFiles = { "/**", "node_modules/**" }, + }, + { + type = "pwa-node", + request = "launch", + name = "Launch Test Current File (pwa-node with vitest)", + cwd = vim.fn.getcwd(), + program = "${workspaceFolder}/node_modules/vitest/vitest.mjs", + args = { "--inspect-brk", "--threads", "false", "run", "${file}" }, + autoAttachChildProcesses = true, + smartStep = true, + console = "integratedTerminal", + skipFiles = { "/**", "node_modules/**" }, + }, + { + type = "pwa-node", + request = "launch", + name = "Launch Test Current File (pwa-node with deno)", + cwd = vim.fn.getcwd(), + runtimeArgs = { "test", "--inspect-brk", "--allow-all", "${file}" }, + runtimeExecutable = "deno", + attachSimplePort = 9229, + }, + } + end + require("dap.ext.vscode").load_launchjs(nil, { + ["pwa-chrome"] = { "typescript", "javascript", "typescriptreact", "javascriptreact" }, + }) + end, + }, + }, +}