dap-conf.lua 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. local dap = require('dap')
  2. local dapui = require('dapui')
  3. dapui.setup()
  4. require('nvim-dap-virtual-text').setup()
  5. -- Automatically open/close dap-ui
  6. dap.listeners.after.event_initialized["dapui_config"] = function()
  7. dapui.open()
  8. end
  9. dap.listeners.before.event_terminated["dapui_config"] = function()
  10. dapui.close()
  11. end
  12. dap.listeners.before.event_exited["dapui_config"] = function()
  13. dapui.close()
  14. end
  15. -- Python configuration
  16. require('dap-python').setup('python3') -- assumes python3 is in your path and has debugpy installed
  17. -- Keymaps
  18. local keymap = vim.keymap.set
  19. local opts = { silent = true }
  20. keymap('n', '<leader>dc', function() require('dap').continue() end, opts)
  21. keymap('n', '<leader>dn', function() require('dap').step_over() end, opts)
  22. keymap('n', '<leader>di', function() require('dap').step_into() end, opts)
  23. keymap('n', '<leader>do', function() require('dap').step_out() end, opts)
  24. keymap('n', '<leader>db', function() require('dap').toggle_breakpoint() end, opts)
  25. keymap('n', '<leader>dB', function() require('dap').set_breakpoint(vim.fn.input('Breakpoint condition: ')) end, opts)
  26. keymap('n', '<leader>lp', function() require('dap').set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) end, opts)
  27. keymap('n', '<leader>dr', function() require('dap').repl.open() end, opts)
  28. keymap('n', '<leader>dl', function() require('dap').run_last() end, opts)
  29. -- Widgets
  30. keymap({'n', 'v'}, '<leader>dh', function()
  31. require('dap.ui.widgets').hover()
  32. end)
  33. keymap({'n', 'v'}, '<leader>dp', function()
  34. require('dap.ui.widgets').preview()
  35. end)
  36. keymap('n', '<leader>df', function()
  37. local widgets = require('dap.ui.widgets')
  38. widgets.centered_float(widgets.frames)
  39. end)
  40. keymap('n', '<leader>ds', function()
  41. local widgets = require('dap.ui.widgets')
  42. widgets.centered_float(widgets.scopes)
  43. end)
  44. -- DAP UI keymaps
  45. keymap('n', '<leader>du', function() dapui.toggle() end, opts)