dotfiles/.config/nvim/lua/plugins/dap.lua
2023-06-02 10:57:53 +02:00

61 lines
2.3 KiB
Lua

require("dap-vscode-js").setup({
-- node_path = "node", -- Path of node executable. Defaults to $NODE_PATH, and then "node"
-- debugger_path = "(runtimedir)/site/pack/packer/opt/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 = "(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.
})
local dap = require('dap')
for _, language in ipairs({ "typescript", "javascript" }) do
dap.configurations[language] = {
{
type = "pwa-node",
request = "attach",
name = "Attach",
port = 9229,
cwd = "${workspaceFolder}",
},
}
end
dap.adapters.codelldb = {
type = 'server',
port = "${port}",
executable = {
command = '/usr/bin/codelldb',
args = {"--port", "${port}"},
}
}
dap.configurations.rust = {
{
name = "Rust debug",
type = "codelldb",
request = "launch",
program = function()
vim.fn.jobstart('cargo build')
-- cargo metadata --no-deps --format-version 1 | jq -r '.target_directory'
-- cargo metadata --no-deps --format-version 1 | jq -r '.packages[].targets[] | select( .kind | map(. == "bin") | any ) | .name'
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/target/debug/', 'file')
end,
cwd = '${workspaceFolder}',
stopOnEntry = true,
showDisassembly = "never",
},
}
local dapui = require('dapui')
dapui.setup()
require("nvim-dap-virtual-text").setup()
vim.keymap.set('n', '<Leader>du', dapui.toggle)
vim.keymap.set('n', '<Leader>b', dap.toggle_breakpoint)
vim.keymap.set('n', '<Leader>c', dap.continue)
vim.keymap.set('n', '<Leader>o', dap.step_over)
vim.keymap.set('n', '<Leader>i', dap.step_into)
vim.keymap.set('n', '<Leader>q', dap.terminate)