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
|
return {
{
"miroshQa/debugmaster.nvim",
branch = "dashboard",
dependencies = "mfussenegger/nvim-dap",
keys = {
{
"<leader>td",
function()
require("debugmaster").mode.toggle()
end,
desc = "[T]oggle [D]ebug mode",
},
},
},
{
"mfussenegger/nvim-dap",
config = function()
local dap = require("dap")
local function get_env_vars()
local variables = vim.fn.environ()
table.insert(variables, { ASAN_OPTIONS = "detect_leaks=0" })
return variables
end
dap.adapters.lldb = {
type = "executable",
command = "lldb-dap",
name = "lldb",
env = get_env_vars,
}
dap.adapters.gdb = {
type = "executable",
command = "gdb",
args = { "--interpreter=dap" },
env = get_env_vars,
}
dap.adapters.codelldb = {
type = "executable",
command = "codelldb",
env = get_env_vars,
}
local function get_program()
local _program
vim.ui.input({
prompt = "Program: ",
complete = "file_in_path",
}, function(res)
_program = res
end)
return vim.fn.system("which " .. _program):gsub("\n$", "")
end
local function get_args()
local _args
vim.ui.input({
prompt = "Args: ",
default = vim.fn.getreg("+"),
complete = "file",
}, function(res)
_args = res
end)
return require("dap.utils").splitstr(_args)
end
dap.configurations.cpp = {
{
name = "codelldb Launch",
type = "codelldb",
request = "launch",
cwd = "${workspaceFolder}",
program = get_program,
args = get_args,
stopOnEntry = true,
console = "integratedTerminal",
},
}
dap.configurations.c = dap.configurations.cpp
dap.configurations.rust = dap.configurations.cpp
end,
dependencies = {
{
"theHamsta/nvim-dap-virtual-text",
opts = {},
dependencies = { "nvim-treesitter/nvim-treesitter" },
},
"williamboman/mason.nvim",
{
"jay-babu/mason-nvim-dap.nvim",
opts = {
automatic_installation = false,
handlers = {},
ensure_installed = {},
},
},
},
},
}
|