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
|
return {
'mfussenegger/nvim-dap',
dependencies = {
'rcarriga/nvim-dap-ui', 'theHamsta/nvim-dap-virtual-text',
'nvim-neotest/nvim-nio', 'williamboman/mason.nvim',
'jay-babu/mason-nvim-dap.nvim'
},
config = function()
local dap = require("dap")
local ui = require("dapui")
require("dapui").setup()
require("nvim-dap-virtual-text").setup()
require("mason").setup()
require("mason-nvim-dap").setup({ensure_installed = {"codelldb"}})
dap.adapters.codelldb = {
type = "executable",
command = "codelldb" -- or if not in $PATH: "/absolute/path/to/codelldb"
}
dap.configurations.cpp = {
{
name = "Launch file",
type = "codelldb",
request = "launch",
program = function()
return vim.fn.input('Path to executable: ',
vim.fn.getcwd() .. '/', 'file')
end,
cwd = '${workspaceFolder}',
stopOnEntry = false
}
}
dap.listeners.before.attach.dapui_config = function() ui.open() end
dap.listeners.before.launch.dapui_config = function() ui.open() end
dap.listeners.before.event_terminated.dapui_config = function()
ui.close()
end
dap.listeners.before.event_exited.dapui_config = function()
ui.close()
end
vim.keymap.set("n", "<leader>b",
function() require("dap").toggle_breakpoint() end)
vim.keymap.set("n", "<leader>gb",
function() require("dap").run_to_cursor() end)
vim.keymap.set("n", "<leader>B", function()
local condition = vim.fn.input("Conditional breakpoint: ")
require("dap").toggle_breakpoint(condition)
end)
-- Eval var under cursor
vim.keymap.set("n", "<leader>?", function()
require("dapui").eval(nil, {enter = true})
end)
-- Use mT to start a new session
vim.keymap.set("n", "mT", function() require("dap").continue() end)
-- Use F1 to continue
vim.keymap.set("n", "<F1>", function() require("dap").continue() end)
vim.keymap.set("n", "<F2>", function() require("dap").step_over() end)
vim.keymap.set("n", "<F3>", function() require("dap").step_into() end)
vim.keymap.set("n", "<F4>", function() require("dap").step_out() end)
vim.keymap.set("n", "<F5>", function() require("dap").step_back() end)
end
}
|