feat: option to autostart debugger UI

This commit is contained in:
Ching Pei Yang 2023-05-05 15:31:55 +02:00
parent 640e37bd08
commit 595e76ed2f
2 changed files with 32 additions and 12 deletions

View file

@ -7,17 +7,32 @@ with lib;
with builtins; let
cfg = config.vim.debugger.nvim-dap;
in {
config = mkIf cfg.enable {
vim.startPlugins =
[
"nvim-dap"
]
++ optionals cfg.ui.enable [
"nvim-dap-ui"
];
config = mkMerge [
(mkIf cfg.enable {
vim.startPlugins = ["nvim-dap"];
vim.luaConfigRC.nvim-dap-ui = nvim.dag.entryAnywhere ''
require("dapui").setup()
'';
};
vim.luaConfigRC.nvim-dap =
nvim.dag.entryAnywhere ''
'';
})
(mkIf (cfg.enable && cfg.ui.enable) {
vim.startPlugins = ["nvim-dap-ui"];
vim.luaConfigRC.nvim-dap-ui = nvim.dag.entryAfter ["nvim-dap"] (''
local dapui = require("dapui")
require("dapui").setup()
''
+ optionalString cfg.ui.autoStart ''
dap.listeners.after.event_initialized["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
'');
})
];
}

View file

@ -5,6 +5,11 @@ with lib; {
ui = {
enable = mkEnableOption "Enable UI extension for nvim-dap";
autoStart = mkOption {
type = types.bool;
default = true;
description = "Automatically Opens and Closes DAP-UI upon starting/closing a debugging session";
};
};
};
}