1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
---@type LazySpec
local M = {
"mfussenegger/nvim-dap",
cmd = {
"Break",
"DapShowLog",
"DapContinue",
"DapToggleBreakpoint",
"DapLoadLaunchJSON",
},
keys = {
"<leader>db",
"<leader>dc",
"<F5>",
},
dependencies = {
"mfussenegger/nvim-dap-python",
"leoluz/nvim-dap-go",
"nvim-telescope/telescope-dap.nvim",
{
"LiadOz/nvim-dap-repl-highlights",
dependencies = { "nvim-treesitter/nvim-treesitter" },
config = true,
},
{
"theHamsta/nvim-dap-virtual-text",
dependencies = { "nvim-treesitter/nvim-treesitter" },
opts = {
commented = true,
},
},
},
}
function M.config()
require("dap").listeners.after.event_initialized["User"] = function()
vim.api.nvim_exec_autocmds("User", { pattern = "DapAttach" })
end
require("dap").listeners.before.event_terminated["User"] = function()
vim.api.nvim_exec_autocmds("User", { pattern = "DapDetach" })
require("dap").repl.close()
end
local adapters = require("tobyvin.dap.adapters")
for name, adapter in pairs(adapters) do
if require("dap").adapters[name] == nil then
require("dap").adapters[name] = adapter
end
end
local configs = require("tobyvin.dap.configs")
for name, config in pairs(configs) do
if require("dap").configurations[name] == nil then
require("dap").configurations[name] = config
end
end
vim.fn.sign_define("DapBreakpoint", { text = " ", texthl = "debugBreakpoint" })
vim.fn.sign_define("DapBreakpointCondition", { text = " ", texthl = "debugBreakpoint" })
vim.fn.sign_define("DapBreakpointRejected", { text = " ", texthl = "debugBreakpoint" })
vim.fn.sign_define("DapLogPoint", { text = " ", texthl = "debugBreakpoint" })
vim.fn.sign_define("DapStopped", { text = " ", texthl = "debugBreakpoint" })
vim.keymap.set("n", "<F5>", require("dap").continue, { desc = "continue" })
vim.keymap.set("n", "<F10>", require("dap").step_over, { desc = "step over" })
vim.keymap.set("n", "<F11>", require("dap").step_into, { desc = "step into" })
vim.keymap.set("n", "<F12>", require("dap").step_out, { desc = "step out" })
vim.keymap.set("n", "<leader>dq", require("dap").terminate, { desc = "terminate" })
vim.keymap.set("n", "<leader>db", require("dap").toggle_breakpoint, { desc = "toggle breakpoint" })
vim.keymap.set("n", "<leader>dl", require("dap.ui.widgets").hover)
vim.api.nvim_create_user_command("Break", function(opts)
require("dap").toggle_breakpoint(unpack(opts.fargs))
end, { nargs = "*", desc = "toggle breakpoint" })
end
return M
|