flake/nixos/nvim/plugins/dap/default.nix
2025-02-08 12:53:14 -06:00

170 lines
3.7 KiB
Nix

{
imports = [
./dotnet.nix
];
programs.nixvim = {
plugins = {
dap.enable = true;
dap-python.enable = true;
dap-ui = {
enable = true;
settings = {
controls = {
enable = true;
element = "repl";
};
layouts = [
{
elements = [
{
id = "breakpoints";
size = 0.25;
}
{
id = "repl";
size = 0.75;
}
];
position = "bottom";
size = 10;
}
];
};
};
};
keymaps = [
{
mode = "n";
key = "<F6>";
action = "<CMD>lua require('dapui').toggle()<CR>";
options = {
desc = "Toggle Debugging UI";
silent = true;
};
}
{
mode = "n";
key = "<F5>";
action = "<CMD>DapContinue<CR>";
options = {
desc = "Continue Debugging";
silent = false;
};
}
{
mode = "n";
key = "<F10>";
action = "<CMD>DapStepOver<CR>";
options = {
desc = "Step Over (Debugger)";
silent = true;
};
}
{
mode = "n";
key = "<F11>";
action = "<CMD>DapStepInto<CR>";
options = {
desc = "Step Into (Debugger)";
silent = true;
};
}
{
mode = "n";
key = "<F12>";
action = "<CMD>DapStepOut<CR>";
options = {
desc = "Step Out (Debugger)";
silent = true;
};
}
{
mode = "n";
key = "<leader>b";
action = "<CMD>DapToggleBreakpoint<CR>";
options = {
desc = "Toggle Breakpoint (Debugger)";
silent = true;
};
}
{
mode = "n";
key = "<leader>B";
action = "<CMD>DapSetBreakpoint<CR>";
options = {
desc = "Set Breakpoint (Debugger)";
silent = false;
};
}
{
mode = "n";
key = "<leader>lp";
action = "<CMD>lua require('dap').set_breakpoint(nil, nil, vim.fn.input('Log point message: '))<CR>";
options = {
desc = "Set Log Point (Debugger)";
silent = false;
};
}
{
mode = "n";
key = "<leader>dr";
action = "<CMD>DapToggleRepl<CR>";
options = {
desc = "Toggle REPL";
silent = true;
};
}
{
mode = "n";
key = "<leader>dl";
action = "<CMD>lua require('dap').run_last()<CR>";
options = {
desc = "Run Last (Debugger)";
silent = false;
};
}
{
mode = [
"n"
"v"
];
key = "<leader>dh";
action = "<CMD>lua require('dap.ui.widgets').hover()<CR>";
options = {
desc = "TODO";
silent = true;
};
}
{
mode = [
"n"
"v"
];
key = "<leader>dh";
action = "<CMD>lua require('dap.ui.widgets').preview()<CR>";
options = {
desc = "TODO";
silent = true;
};
}
{
mode = "n";
key = "<leader>df";
action = "<CMD>lua require('dap.ui.widgets').centered_float(widgets.frames)<CR>";
options = {
desc = "TODO";
silent = true;
};
}
{
mode = "n";
key = "<leader>ds";
action = "<CMD>lua require('dap.ui.widgets').centered_float(widgets.scopes)<CR>";
options = {
desc = "TODO";
silent = true;
};
}
];
};
}