188 lines
3.7 KiB
Nix
188 lines
3.7 KiB
Nix
{
|
|
plugins.dap = {
|
|
enable = true;
|
|
extensions = {
|
|
dap-ui.enable = true;
|
|
dap-virtual-text.enable = true;
|
|
};
|
|
adapters = {
|
|
executables = {
|
|
gdb = {
|
|
command = "gdb";
|
|
args = [ "-i" "dap" ];
|
|
};
|
|
};
|
|
};
|
|
configurations = {
|
|
c = [
|
|
{
|
|
name = "Launch";
|
|
type = "gdb";
|
|
request = "launch";
|
|
program.__raw = # lua
|
|
''
|
|
function()
|
|
return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. '/', "file")
|
|
end
|
|
'';
|
|
args.__raw = # lua
|
|
''
|
|
function()
|
|
return vim.fn.input("Args: ", "", "file")
|
|
end
|
|
'';
|
|
cwd = ''''${workspacefolder}'';
|
|
stopOnEntry = false;
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
keymaps = [
|
|
{
|
|
mode = "n";
|
|
key = "<leader>db";
|
|
action = ":DapToggleBreakpoint<cr>";
|
|
options.desc = "Toggle Breakpoint";
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>dc";
|
|
action = ":DapContinue<cr>";
|
|
options.desc = "Continue";
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>da";
|
|
action = "<cmd>lua require('dap').continue({ before = get_args })<cr>";
|
|
options = {
|
|
silent = true;
|
|
desc = "Run with Args";
|
|
};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>dC";
|
|
action = "<cmd>lua require('dap').run_to_cursor()<cr>";
|
|
options = {
|
|
silent = true;
|
|
desc = "Run to cursor";
|
|
};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>dg";
|
|
action = "<cmd>lua require('dap').goto_()<cr>";
|
|
options = {
|
|
silent = true;
|
|
desc = "Go to line (no execute)";
|
|
};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>di";
|
|
action = ":DapStepInto<cr>";
|
|
options = {
|
|
silent = true;
|
|
desc = "Step into";
|
|
};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>dj";
|
|
action = "
|
|
<cmd>lua require('dap').down()<cr>
|
|
";
|
|
options = {
|
|
silent = true;
|
|
desc = "Down";
|
|
};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>dk";
|
|
action = "<cmd>lua require('dap').up()<cr>";
|
|
options = {
|
|
silent = true;
|
|
desc = "Up";
|
|
};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>dl";
|
|
action = "<cmd>lua require('dap').run_last()<cr>";
|
|
options = {
|
|
silent = true;
|
|
desc = "Run Last";
|
|
};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>do";
|
|
action = ":DapStepOut<cr>";
|
|
options = {
|
|
silent = true;
|
|
desc = "Step Out";
|
|
};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>dO";
|
|
action = ":DapStepOver<cr>";
|
|
options = {
|
|
silent = true;
|
|
desc = "Step Over";
|
|
};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>dp";
|
|
action = "<cmd>lua require('dap').pause()<cr>";
|
|
options = {
|
|
silent = true;
|
|
desc = "Pause";
|
|
};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>dr";
|
|
action = ":DapToggleRepl<cr>";
|
|
options = {
|
|
silent = true;
|
|
desc = "Toggle REPL";
|
|
};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>ds";
|
|
action = "<cmd>lua require('dap').session()<cr>";
|
|
options = {
|
|
silent = true;
|
|
desc = "Session";
|
|
};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>dt";
|
|
action = ":DapTerminate<cr>";
|
|
options = {
|
|
silent = true;
|
|
desc = "Terminate";
|
|
};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>du";
|
|
action.__raw = # lua
|
|
''
|
|
function()
|
|
require("dapui").toggle()
|
|
end
|
|
'';
|
|
options = {
|
|
desc = "Toggle Debugger UI";
|
|
silent = true;
|
|
};
|
|
}
|
|
];
|
|
}
|