diff --git a/lazy-lock.json b/lazy-lock.json index e612a90d..c6d843da 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -22,7 +22,6 @@ "neoscroll.nvim": { "branch": "master", "commit": "be4ebf855a52f71ca4338694a5696675d807eff9" }, "nvim-blame-line": { "branch": "master", "commit": "b3d94f0ed5882d3d1c843c69788b9670476e1f42" }, "nvim-cmp": { "branch": "main", "commit": "538e37ba87284942c1d76ed38dd497e54e65b891" }, - "nvim-dap-vscode-js": { "branch": "main", "commit": "03bd29672d7fab5e515fc8469b7d07cc5994bbf6" }, "nvim-lspconfig": { "branch": "master", "commit": "9099871a7c7e1c16122e00d70208a2cd02078d80" }, "nvim-treesitter": { "branch": "master", "commit": "7a2c6211d6f550988fccd8800de8426d5e480a2d" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "0e2d5bd4cbe75849a013901555d436a48c6680cb" }, diff --git a/lua/custom/plugins/nvim-dap.lua b/lua/custom/plugins/nvim-dap.lua new file mode 100644 index 00000000..6b7b7631 --- /dev/null +++ b/lua/custom/plugins/nvim-dap.lua @@ -0,0 +1,51 @@ +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, +}