make debug config better
This commit is contained in:
+76
-10
@@ -61,15 +61,81 @@ dap.adapters.codelldb = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
local dap = require('dap')
|
local dap = require('dap')
|
||||||
dap.configurations.cpp = {
|
vim.api.nvim_create_user_command('Debug', function(opts)
|
||||||
{
|
local args = vim.split(opts.args, " ")
|
||||||
type = 'codelldb';
|
|
||||||
request = 'launch';
|
|
||||||
name = "Launch file";
|
|
||||||
program = "build/source/cfi_app";
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
vim.api.nvim_create_user_command("Debug", function(opts)
|
if #args < 1 then
|
||||||
|
print("Usage: :Debug <executable> [<working_dir>] [<args>...]")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local executable = args[1]
|
||||||
|
local working_dir = (#args >= 2 and args[2] ~= "") and args[2] or vim.fn.getcwd()
|
||||||
|
local program_args = {}
|
||||||
|
if #args > 2 then
|
||||||
|
for i = 3, #args do
|
||||||
|
table.insert(program_args, args[i])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
dap.run({
|
||||||
|
type = 'codelldb',
|
||||||
|
request = 'launch',
|
||||||
|
name = 'Custom Debug',
|
||||||
|
program = executable,
|
||||||
|
cwd = working_dir,
|
||||||
|
args = program_args,
|
||||||
|
stopOnEntry = false,
|
||||||
|
})
|
||||||
|
end, {
|
||||||
|
nargs = '+',
|
||||||
|
complete = 'file',
|
||||||
|
desc = 'Launch a debugger session with custom executable and args',
|
||||||
|
})
|
||||||
|
|
||||||
|
require("dapui").setup({
|
||||||
|
layouts = {
|
||||||
|
{
|
||||||
|
elements = {
|
||||||
|
{ id = "scopes", size = 0.8 },
|
||||||
|
{ id = "watches", size = 0.2 },
|
||||||
|
},
|
||||||
|
size = 40,
|
||||||
|
position = "left",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
elements = {
|
||||||
|
"repl",
|
||||||
|
"console",
|
||||||
|
},
|
||||||
|
size = 0.25,
|
||||||
|
position = "bottom",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
controls = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
floating = {
|
||||||
|
max_height = nil,
|
||||||
|
max_width = nil,
|
||||||
|
border = "rounded",
|
||||||
|
mappings = {
|
||||||
|
close = { "q", "<Esc>" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
windows = { indent = 1 },
|
||||||
|
})
|
||||||
|
local dap, dapui = require("dap"), require("dapui")
|
||||||
|
dap.listeners.before.attach.dapui_config = function()
|
||||||
|
dapui.open()
|
||||||
|
end
|
||||||
|
dap.listeners.before.launch.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,)
|
|
||||||
|
|||||||
@@ -53,5 +53,12 @@ return {
|
|||||||
"mfussenegger/nvim-dap",
|
"mfussenegger/nvim-dap",
|
||||||
"williamboman/mason.nvim",
|
"williamboman/mason.nvim",
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
"rcarriga/nvim-dap-ui",
|
||||||
|
dependencies = {
|
||||||
|
"mfussenegger/nvim-dap",
|
||||||
|
"nvim-neotest/nvim-nio"
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user