52 lines
1.4 KiB
Lua
52 lines
1.4 KiB
Lua
return {
|
|
'mfussenegger/nvim-dap',
|
|
optional = true,
|
|
dependencies = {
|
|
{
|
|
'williamboman/mason.nvim',
|
|
opts = function (_, opts)
|
|
opts.ensure_installed = opts.ensure_installed or {}
|
|
table.insert(opts.ensure_installed, 'js-debug-adapter')
|
|
end,
|
|
},
|
|
},
|
|
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',
|
|
args = {
|
|
require('mason-registry').get_package('js-debug-adapter'):get_install_path()
|
|
.. '/js-debug/src/dapDebugServer.js',
|
|
'${port}',
|
|
},
|
|
},
|
|
}
|
|
end
|
|
for _, language in ipairs({ 'javascript', 'typescript', 'typescriptreact', 'javascriptreact' }) do
|
|
if not dap.configurations[language] then
|
|
dap.configurations[language] = {
|
|
{
|
|
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}',
|
|
},
|
|
}
|
|
end
|
|
end
|
|
end,
|
|
}
|