-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdap.lua
More file actions
134 lines (130 loc) · 4.55 KB
/
dap.lua
File metadata and controls
134 lines (130 loc) · 4.55 KB
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
---@type LazySpec
return {
-- Core DAP (Debug Adapter Protocol) configuration
{
"mfussenegger/nvim-dap",
event = "LspAttach",
config = function()
local grp = vim.api.nvim_create_augroup("Nvim-DAP", { clear = true })
vim.api.nvim_create_autocmd("LspAttach", {
group = grp,
desc = "Keymaps nvim-dap (buffer-local)",
callback =
---@param ev vim.api.keyset.create_autocmd.callback_args
function(ev)
-- Buffer-local keymaps
local keymaps = require("core.keymaps")
local util = require("core.util")
util.map_keys(keymaps.nvim_dap, { buffer = ev.buf })
end,
})
end,
},
-- Modern debugger UI with post-session inspection
{
"rcarriga/nvim-dap-ui",
dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" },
event = "LspAttach",
config = function()
local dap = require("dap")
local dapui = require("dapui")
dapui.setup()
local session_active = false
dap.listeners.after.event_initialized["dapui_config"] = function()
session_active = true
dapui.open()
end
local function notify_session_end()
if session_active then
session_active = false
end
end
dap.listeners.before.event_terminated["dapui_config"] =
notify_session_end
dap.listeners.before.event_exited["dapui_config"] = notify_session_end
local grp =
vim.api.nvim_create_augroup("Nvim-DAP-UI", { clear = true })
vim.api.nvim_create_autocmd("LspAttach", {
group = grp,
desc = "Keymaps nvim-dap-ui (buffer-local)",
callback =
---@param ev vim.api.keyset.create_autocmd.callback_args
function(ev)
-- Buffer-local keymaps
local keymaps = require("core.keymaps")
local util = require("core.util")
util.map_keys(keymaps.nvim_dap_ui, { buffer = ev.buf })
end,
})
end,
},
-- Mason bridge for `nvim-dap`
{
"jay-babu/mason-nvim-dap.nvim",
dependencies = { "mason-org/mason.nvim", "mfussenegger/nvim-dap" },
event = "LspAttach",
build = ":MasonUpdate",
config = function()
require("mason-nvim-dap").setup({
automatic_installation = true,
ensure_installed = {
"codelldb",
"delve",
"python",
},
handlers = {},
})
end,
},
-- DAP for Python
{
"mfussenegger/nvim-dap-python",
dependencies = { "mfussenegger/nvim-dap", "rcarriga/nvim-dap-ui" },
ft = "python",
config = function()
require("dap-python").setup()
local grp =
vim.api.nvim_create_augroup("Nvim-DAP-Python", { clear = true })
vim.api.nvim_create_autocmd({ "LspAttach", "FileType" }, {
group = grp,
pattern = { "python" },
desc = "Keymaps nvim-dap-python (buffer-local)",
callback =
---@param ev vim.api.keyset.create_autocmd.callback_args
function(ev)
-- Buffer-local keymaps
local keymaps = require("core.keymaps")
local util = require("core.util")
util.map_keys(keymaps.nvim_dap_python, { buffer = ev.buf })
end,
})
end,
},
-- DAP for Go
{
"leoluz/nvim-dap-go",
dependencies = { "mfussenegger/nvim-dap", "rcarriga/nvim-dap-ui" },
ft = "go",
config =
---@param _ LazyPlugin
---@param opts table
function(_, opts)
require("dap-go").setup(opts)
local grp =
vim.api.nvim_create_augroup("Nvim-DAP-Go", { clear = true })
vim.api.nvim_create_autocmd({ "LspAttach", "FileType" }, {
group = grp,
pattern = { "go" },
desc = "Keymaps nvim-dap-go (buffer-local)",
callback =
---@param ev vim.api.keyset.create_autocmd.callback_args
function(ev)
-- Buffer-local keymaps
local keymaps = require("core.keymaps")
local util = require("core.util")
util.map_keys(keymaps.nvim_dap_go, { buffer = ev.buf })
end,
})
end,
},
}