Files
dotfiles/nvim/.config/nvim/lua/kickstart/plugins/nvim-dap.lua
2025-09-20 14:21:05 -04:00

112 lines
2.7 KiB
Lua

return {
{
"mfussenegger/nvim-dap",
dependencies = {
"nvim-neotest/nvim-nio",
"rcarriga/nvim-dap-ui",
"mfussenegger/nvim-dap-python",
"theHamsta/nvim-dap-virtual-text",
},
config = function()
local dap = require("dap")
local dapui = require("dapui")
local dap_python = require("dap-python")
require("dapui").setup()
require("nvim-dap-virtual-text").setup({
commented = true, -- Show virtual text alongside comment
})
dap_python.setup("python3")
table.insert(require('dap').configurations.python, {
justMyCode = false,
type = 'python';
request = 'launch';
name = 'file:args:allCode';
program = '${file}';
args = function()
local args_string = vim.fn.input('Arguments: ')
local utils = require("dap.utils")
if utils.splitstr and vim.fn.has("nvim-0.10") == 1 then
return utils.splitstr(args_string)
end
return vim.split(args_string, " +")
end;
-- console = opts.console;
-- pythonPath = opts.pythonPath,
})
vim.fn.sign_define("DapBreakpoint", {
text = "",
texthl = "DiagnosticSignError",
linehl = "",
numhl = "",
})
vim.fn.sign_define("DapBreakpointRejected", {
text = "", -- or "❌"
texthl = "DiagnosticSignError",
linehl = "",
numhl = "",
})
vim.fn.sign_define("DapStopped", {
text = "", -- or "→"
texthl = "DiagnosticSignWarn",
linehl = "Visual",
numhl = "DiagnosticSignWarn",
})
-- Automatically open DAP UI
dap.listeners.after.event_initialized["dapui_config"] = function()
dapui.open()
end
-- Automatically close DAP UI when session terminates
dap.listeners.after.event_terminated["dapui_config"] = function()
dapui.close()
end
dap.listeners.after.event_exited["dapui_config"] = function()
dapui.close()
end
local opts = { noremap = true, silent = true }
-- Toggle breakpoint
vim.keymap.set("n", "<leader>db", function()
dap.toggle_breakpoint()
end, opts)
-- Continue / Start
vim.keymap.set("n", "<leader>dc", function()
dap.continue()
end, opts)
-- Step Over
vim.keymap.set("n", "<leader>do", function()
dap.step_over()
end, opts)
-- Step Into
vim.keymap.set("n", "<leader>di", function()
dap.step_into()
end, opts)
-- Step Out
vim.keymap.set("n", "<leader>dO", function()
dap.step_out()
end, opts)
-- Keymap to terminate debugging
vim.keymap.set("n", "<leader>dq", function()
require("dap").terminate()
end, opts)
-- Toggle DAP UI
vim.keymap.set("n", "<leader>du", function()
dapui.toggle()
end, opts)
end,
},
}
-- vim: ts=2 sts=2 sw=2 et