diff --git a/lua/lazyvim/plugins/extras/dap/core.lua b/lua/lazyvim/plugins/extras/dap/core.lua index d84b71bf..3a69a2c5 100644 --- a/lua/lazyvim/plugins/extras/dap/core.lua +++ b/lua/lazyvim/plugins/extras/dap/core.lua @@ -67,13 +67,6 @@ return { { text = sign[1], texthl = sign[2] or "DiagnosticInfo", linehl = sign[3], numhl = sign[3] } ) end - - -- setup dap config by VsCode launch.json file - local vscode = require("dap.ext.vscode") - local json = require("plenary.json") - vscode.json_decode = function(str) - return vim.json.decode(json.json_strip_comments(str)) - end end, }, diff --git a/lua/lazyvim/plugins/extras/lang/typescript.lua b/lua/lazyvim/plugins/extras/lang/typescript.lua index f7cc3231..f9ffda04 100644 --- a/lua/lazyvim/plugins/extras/lang/typescript.lua +++ b/lua/lazyvim/plugins/extras/lang/typescript.lua @@ -203,41 +203,40 @@ return { }, opts = function() local dap = require("dap") - if not dap.adapters["pwa-node"] then - require("dap").adapters["pwa-node"] = { - type = "server", - host = "localhost", - port = "${port}", - executable = { - command = "node", - -- 💀 Make sure to update this path to point to your installation - args = { - LazyVim.get_pkg_path("js-debug-adapter", "/js-debug/src/dapDebugServer.js"), - "${port}", + + for _, adapterType in ipairs({ "node", "chrome", "msedge" }) do + local pwaType = "pwa-" .. adapterType + + if not dap.adapters[pwaType] then + dap.adapters[pwaType] = { + type = "server", + host = "localhost", + port = "${port}", + executable = { + command = "js-debug-adapter", + args = { "${port}" }, }, - }, - } - end - if not dap.adapters["node"] then - dap.adapters["node"] = function(cb, config) - if config.type == "node" then - config.type = "pwa-node" - end - local nativeAdapter = dap.adapters["pwa-node"] - if type(nativeAdapter) == "function" then - nativeAdapter(cb, config) - else - cb(nativeAdapter) + } + end + + -- Define adapters without the "pwa-" prefix for VSCode compatibility + if not dap.adapters[adapterType] then + dap.adapters[adapterType] = function(cb, config) + local nativeAdapter = dap.adapters[pwaType] + + config.type = pwaType + + if type(nativeAdapter) == "function" then + nativeAdapter(cb, config) + else + cb(nativeAdapter) + end end end end local js_filetypes = { "typescript", "javascript", "typescriptreact", "javascriptreact" } - local vscode = require("dap.ext.vscode") - vscode.type_to_filetypes["node"] = js_filetypes - vscode.type_to_filetypes["pwa-node"] = js_filetypes - for _, language in ipairs(js_filetypes) do if not dap.configurations[language] then dap.configurations[language] = { @@ -261,6 +260,14 @@ return { end, }, + { + "jay-babu/mason-nvim-dap.nvim", + optional = true, + opts = { + automatic_installation = { exclude = { "chrome" } }, + }, + }, + -- Filetype icons { "echasnovski/mini.icons",