diff options
| author | Mosder <xmosder12@gmail.com> | 2026-06-10 02:24:31 +0200 |
|---|---|---|
| committer | Mosder <xmosder12@gmail.com> | 2026-06-10 02:24:31 +0200 |
| commit | 1f2824b912b22a687fb0f1c56f82198128bef1ca (patch) | |
| tree | a22c4425c43fcd111c441531b21e275b1fd97f3f /common/home/mosder/.config/nvim/lua/kickstart/plugins/debug.lua | |
| parent | a7fab53f802c8bacfce66fb3455145835e231460 (diff) | |
added and updated a lot of configs + refactored it to be more accessible
Diffstat (limited to 'common/home/mosder/.config/nvim/lua/kickstart/plugins/debug.lua')
| -rw-r--r-- | common/home/mosder/.config/nvim/lua/kickstart/plugins/debug.lua | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/common/home/mosder/.config/nvim/lua/kickstart/plugins/debug.lua b/common/home/mosder/.config/nvim/lua/kickstart/plugins/debug.lua new file mode 100644 index 0000000..db5448c --- /dev/null +++ b/common/home/mosder/.config/nvim/lua/kickstart/plugins/debug.lua @@ -0,0 +1,95 @@ +-- debug.lua +-- +-- Shows how to use the DAP plugin to debug your code. +-- +-- Primarily focused on configuring the debugger for Go, but can +-- be extended to other languages as well. That's why it's called +-- kickstart.nvim and not kitchen-sink.nvim ;) + +vim.pack.add { + 'https://github.com/mfussenegger/nvim-dap', + 'https://github.com/rcarriga/nvim-dap-ui', + 'https://github.com/nvim-neotest/nvim-nio', + 'https://github.com/mason-org/mason.nvim', + 'https://github.com/jay-babu/mason-nvim-dap.nvim', + 'https://github.com/leoluz/nvim-dap-go', +} + +-- Basic debugging keymaps, feel free to change to your liking! +vim.keymap.set('n', '<F5>', function() require('dap').continue() end, { desc = 'Debug: Start/Continue' }) +vim.keymap.set('n', '<F1>', function() require('dap').step_into() end, { desc = 'Debug: Step Into' }) +vim.keymap.set('n', '<F2>', function() require('dap').step_over() end, { desc = 'Debug: Step Over' }) +vim.keymap.set('n', '<F3>', function() require('dap').step_out() end, { desc = 'Debug: Step Out' }) +vim.keymap.set('n', '<leader>b', function() require('dap').toggle_breakpoint() end, { desc = 'Debug: Toggle Breakpoint' }) +vim.keymap.set('n', '<leader>B', function() require('dap').set_breakpoint(vim.fn.input 'Breakpoint condition: ') end, { desc = 'Debug: Set Breakpoint' }) +-- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception. +vim.keymap.set('n', '<F7>', function() require('dapui').toggle() end, { desc = 'Debug: See last session result.' }) + +local dap = require 'dap' +local dapui = require 'dapui' + +require('mason-nvim-dap').setup { + -- Makes a best effort to setup the various debuggers with + -- reasonable debug configurations + automatic_installation = true, + + -- You can provide additional configuration to the handlers, + -- see mason-nvim-dap README for more information + handlers = {}, + + -- You'll need to check that you have the required things installed + -- online, please don't ask me how to install them :) + ensure_installed = { + -- Update this to ensure that you have the debuggers for the langs you want + 'delve', + }, +} + +-- Dap UI setup +-- For more information, see |:help nvim-dap-ui| +---@diagnostic disable-next-line: missing-fields +dapui.setup { + -- Set icons to characters that are more likely to work in every terminal. + -- Feel free to remove or use ones that you like more! :) + -- Don't feel like these are good choices. + icons = { expanded = '▾', collapsed = '▸', current_frame = '*' }, + ---@diagnostic disable-next-line: missing-fields + controls = { + icons = { + pause = '⏸', + play = '▶', + step_into = '⏎', + step_over = '⏭', + step_out = '⏮', + step_back = 'b', + run_last = '▶▶', + terminate = '⏹', + disconnect = '⏏', + }, + }, +} + +-- Change breakpoint icons +-- vim.api.nvim_set_hl(0, 'DapBreak', { fg = '#e51400' }) +-- vim.api.nvim_set_hl(0, 'DapStop', { fg = '#ffcc00' }) +-- local breakpoint_icons = vim.g.have_nerd_font +-- and { Breakpoint = '', BreakpointCondition = '', BreakpointRejected = '', LogPoint = '', Stopped = '' } +-- or { Breakpoint = '●', BreakpointCondition = '⊜', BreakpointRejected = '⊘', LogPoint = '◆', Stopped = '⭔' } +-- for type, icon in pairs(breakpoint_icons) do +-- local tp = 'Dap' .. type +-- local hl = (type == 'Stopped') and 'DapStop' or 'DapBreak' +-- vim.fn.sign_define(tp, { text = icon, texthl = hl, numhl = hl }) +-- end + +dap.listeners.after.event_initialized['dapui_config'] = dapui.open +dap.listeners.before.event_terminated['dapui_config'] = dapui.close +dap.listeners.before.event_exited['dapui_config'] = dapui.close + +-- Install golang specific config +require('dap-go').setup { + delve = { + -- On Windows delve must be run attached or it crashes. + -- See https://github.com/leoluz/nvim-dap-go/blob/main/README.md#configuring + detached = vim.fn.has 'win32' == 0, + }, +} |
