65 lines
1.8 KiB
Lua
65 lines
1.8 KiB
Lua
return {
|
|
'mfussenegger/nvim-dap',
|
|
dependencies = {
|
|
'igorlfs/nvim-dap-view',
|
|
'kbenzie/mason.nvim',
|
|
'jay-babu/mason-nvim-dap.nvim',
|
|
'theHamsta/nvim-dap-virtual-text',
|
|
'Jorenar/nvim-dap-disasm',
|
|
},
|
|
config = function()
|
|
local dap = require('dap')
|
|
|
|
-- Installation
|
|
local debug_adapters = {
|
|
'codelldb', -- C/C++/Rust/Zig
|
|
}
|
|
|
|
if vim.fn.executable('pip') == 1 then
|
|
table.insert(debug_adapters, 'python') -- Python
|
|
end
|
|
|
|
if vim.fn.executable('go') == 1 then
|
|
table.insert(debug_adapters, 'delve') -- Go
|
|
end
|
|
|
|
require("mason-nvim-dap").setup({
|
|
ensure_installed = debug_adapters,
|
|
handlers = {},
|
|
})
|
|
|
|
-- UI plugins
|
|
require('dap-view').setup({
|
|
auto_toggle = true,
|
|
})
|
|
require('nvim-dap-virtual-text').setup({})
|
|
require('dap-disasm').setup({
|
|
dapview_register = true,
|
|
})
|
|
|
|
vim.api.nvim_create_autocmd({ "FileType" }, {
|
|
pattern = {
|
|
'dap-float',
|
|
},
|
|
callback = function(args)
|
|
vim.keymap.set("n", "q", "<C-w>q", { buffer = args.buf })
|
|
end,
|
|
})
|
|
|
|
local widgets = require('dap.ui.widgets')
|
|
|
|
-- Mappings
|
|
vim.keymap.set('n', '<leader>D', vim.cmd.DapViewToggle)
|
|
vim.keymap.set('n', '<F5>', dap.continue)
|
|
vim.keymap.set('n', '<F17>', dap.terminate) -- Shift-F5
|
|
vim.keymap.set('n', '<F9>', dap.toggle_breakpoint)
|
|
vim.keymap.set('n', '<F21>', vim.cmd.DapViewWatch) -- Shift-F9
|
|
vim.keymap.set('n', '<F41>', dap.restart) -- Ctrl-Shift-F5
|
|
vim.keymap.set('n', '<F34>', dap.run_to_cursor) -- Ctrl-F10
|
|
vim.keymap.set('n', '<F11>', dap.step_into)
|
|
vim.keymap.set('n', '<F23>', dap.step_out) -- Shift-F11
|
|
vim.keymap.set('n', '<F10>', dap.step_over)
|
|
vim.keymap.set('n', '<leader>K', widgets.hover)
|
|
end,
|
|
}
|