-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdap.lua
More file actions
119 lines (113 loc) · 3.86 KB
/
dap.lua
File metadata and controls
119 lines (113 loc) · 3.86 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
---@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,
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,
desc = "Keymaps nvim-dap (buffer-local)",
})
end,
},
-- Additional DAP UI to make the debugger prettier
{
"rcarriga/nvim-dap-ui",
event = "LspAttach",
dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" },
config = function()
local dap = require("dap")
local dapui = require("dapui")
dapui.setup()
dap.listeners.after.event_initialized["dapui_config"] = function()
dapui.open()
end
dap.listeners.before.event_terminated["dapui_config"] = function()
dapui.close()
end
dap.listeners.before.event_exited["dapui_config"] = function()
dapui.close()
end
end,
},
-- DAP integration via Mason
{
"jay-babu/mason-nvim-dap.nvim",
event = "LspAttach",
dependencies = { "mason-org/mason.nvim", "mfussenegger/nvim-dap" },
opts = {
automatic_installation = true,
ensure_installed = {
"codelldb",
"delve",
"python",
},
handlers = {},
},
},
-- DAP for Python
{
"mfussenegger/nvim-dap-python",
ft = "python",
dependencies = { "mfussenegger/nvim-dap", "rcarriga/nvim-dap-ui" },
config =
---@param _plugin LazyPlugin
---@param _opts table
---@diagnostic disable-next-line: unused-local
function(_plugin, _opts)
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" },
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,
desc = "Keymaps nvim-dap-python (buffer-local)",
})
end,
},
-- DAP for Go
{
"leoluz/nvim-dap-go",
ft = "go",
dependencies = { "mfussenegger/nvim-dap", "rcarriga/nvim-dap-ui" },
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" },
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,
desc = "Keymaps nvim-dap-go (buffer-local)",
})
end,
},
}