kickstart.nvim/lua/kickstart/plugins/dap.lua

85 lines
3.1 KiB
Lua

return {
{
'mfussenegger/nvim-dap',
dependencies = {
'rcarriga/nvim-dap-ui',
'nvim-neotest/nvim-nio',
'williamboman/mason.nvim',
'mxsdev/nvim-dap-vscode-js',
},
config = function()
local dap = require 'dap'
local ui = require 'dapui'
local js_based_languages = { 'typescript', 'javascript', 'typescriptreact' }
require('dap-vscode-js').setup {
-- node_path = 'node', -- Path of node executable. Defaults to $NODE_PATH, and then "node"
debugger_path = '/home/rapzy/vscode-js-debug', -- Path to vscode-js-debug installation.
-- debugger_cmd = { 'js-debug-adapter' }, -- Command to use to launch the debug server. Takes precedence over `node_path` and `debugger_path`.
adapters = { 'pwa-node', 'pwa-chrome', 'pwa-msedge', 'node-terminal', 'pwa-extensionHost' }, -- which adapters to register in nvim-dap
-- log_file_path = '/home/rapzy/.cache/dap_vscode_js.log', -- Path for file logging
-- log_file_level = 0, -- 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.
}
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
require('dapui').setup()
vim.keymap.set('n', '<space>b', dap.toggle_breakpoint)
vim.keymap.set('n', '<space>gb', dap.run_to_cursor)
--Eval var under cursor
-- vim.keymap.set('n', '<space>?', function()
-- require('dapui').eval(nil, { enter = true })
-- end)
vim.keymap.set('n', '<F1>', dap.continue)
vim.keymap.set('n', '<F2>', dap.step_into)
vim.keymap.set('n', '<F3>', dap.step_over)
vim.keymap.set('n', '<F4>', dap.step_out)
vim.keymap.set('n', '<F5>', dap.step_back)
vim.keymap.set('n', '<F13>', dap.restart)
--Automatically open UI when we start debugging
dap.listeners.before.attach.dapui_config = function()
ui.open()
end
dap.listeners.before.launch.dapui_config = function()
ui.open()
end
dap.listeners.before.event_terminated.dapui_config = function()
ui.close()
end
dap.listeners.before.event_exited.dapui_config = function()
ui.close()
end
end,
},
}