nvim/lua/plugins/dap.lua
2024-05-22 13:59:00 +02:00

119 lines
2.2 KiB
Lua

return {
{
'mfussenegger/nvim-dap',
keys = function()
local function dap(name)
return function()
require('dap')[name]()
end
end
return {
{ '<leader>dc', dap 'continue', desc = 'continue' },
{ '<leader>ds', dap 'step_into', desc = 'step into' },
{ '<leader>dn', dap 'step_over', desc = 'step over (next)' },
{ '<leader>df', dap 'step_out', desc = 'step out (finish)' },
{ '<leader>db', dap 'toggle_breakpoint', desc = 'toggle breakpoint' },
{
'<leader>do',
function()
vim.ui.input({ prompt = 'Condition: ' }, function(input)
if input == nil then
return
end
require('dap').set_breakpoint(input)
end)
end,
desc = 'set conditional breakpoint',
},
{ '<leader>dl', dap 'clear_breakpoints', desc = 'clear breakpoints' },
{ '<leader>dq', dap 'terminate', desc = 'quit' },
}
end,
},
{
'rcarriga/nvim-dap-ui',
opts = {
controls = {
element = 'repl',
enabled = true,
icons = {
disconnect = '',
pause = '',
play = '',
run_last = '',
step_back = '',
step_into = '',
step_out = '',
step_over = '',
terminate = '',
},
},
element_mappings = {},
expand_lines = true,
floating = {
border = 'single',
mappings = {
close = { 'q', '<Esc>' },
},
},
force_buffers = true,
icons = {
collapsed = '',
current_frame = '',
expanded = '',
},
layouts = {
{
elements = {
{
id = 'scopes',
size = 0.5,
},
-- {
-- id = "breakpoints",
-- size = 0.25
-- },
{
id = 'stacks',
size = 0.25,
},
{
id = 'watches',
size = 0.25,
},
},
position = 'right',
size = 40,
},
{
elements = {
{
id = 'repl',
size = 0.5,
},
{
id = 'console',
size = 0.5,
},
},
position = 'bottom',
size = 10,
},
},
mappings = {
edit = 'e',
expand = { '<CR>', '<2-LeftMouse>' },
open = 'o',
remove = 'd',
repl = 'r',
toggle = 't',
},
render = {
indent = 1,
max_value_lines = 100,
},
},
},
}