diff --git a/7.-Example-Custom-Plugins.md b/7.-Example-Custom-Plugins.md index a5d8841..6bafa7b 100644 --- a/7.-Example-Custom-Plugins.md +++ b/7.-Example-Custom-Plugins.md @@ -2969,4 +2969,79 @@ return { }, }, } +``` + +# Debuging Javascript +```lua +return { + { + "rcarriga/nvim-dap-ui", + lazy = true, + event = "BufRead", + dependencies = { + { "mfussenegger/nvim-dap", lazy = true }, + { "nvim-neotest/nvim-nio", lazy = true }, + { + "mxsdev/nvim-dap-vscode-js", + dependencies = { + "microsoft/vscode-js-debug", + version = "1.x", + build = "npm i && npm run compile vsDebugServerBundle && mv dist out", + }, + config = function() + require("dap-vscode-js").setup({ + -- node_path = "node", -- Path of node executable. Defaults to $NODE_PATH, and then "node" + debugger_path = vim.fn.stdpath("data") .. "/lazy/vscode-js-debug", + -- debugger_cmd = { "extension" }, -- Command to use to launch the debug server. Takes precedence over `node_path` and `debugger_path`. + adapters = { + "chrome", + "pwa-node", + "pwa-chrome", + "pwa-msedge", + "node-terminal", + "pwa-extensionHost", + "node", + "chrome", + }, -- which adapters to register in nvim-dap + -- log_file_path = "(stdpath cache)/dap_vscode_js.log" -- Path for file logging + -- log_file_level = false -- Logging level for output to file. Set to false to disable file logging. + -- log_console_level = vim.log.levels.ERROR -- Logging level for output to console. Set to false to disable console output. + }) + end, + }, + }, + enabled = vim.fn.has("win32") == 0, + config = function() + require("user.dapui") + local js_based_languages = { "typescript", "javascript", "typescriptreact" } + + for _, language in ipairs(js_based_languages) do + require("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}", + }, + { + type = "pwa-chrome", + request = "launch", + name = 'Start Chrome with "localhost"', + url = "http://localhost:3000", + webRoot = "${workspaceFolder}", + userDataDir = "${workspaceFolder}/.vscode/vscode-chrome-debug-userdatadir", + }, + } + end + end, + }, +} ``` \ No newline at end of file