112 lines
2.7 KiB
Lua
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
|