kickstart.nvim/lua/custom/plugins/nvim-dap.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,
}