aboutsummaryrefslogtreecommitdiffstats
path: root/modules/development/nixvim/plugins/dap-ui
diff options
context:
space:
mode:
Diffstat (limited to 'modules/development/nixvim/plugins/dap-ui')
-rw-r--r--modules/development/nixvim/plugins/dap-ui/dap-ui.lua10
-rw-r--r--modules/development/nixvim/plugins/dap-ui/default.nix28
2 files changed, 38 insertions, 0 deletions
diff --git a/modules/development/nixvim/plugins/dap-ui/dap-ui.lua b/modules/development/nixvim/plugins/dap-ui/dap-ui.lua
new file mode 100644
index 0000000..bcf4fe3
--- /dev/null
+++ b/modules/development/nixvim/plugins/dap-ui/dap-ui.lua
@@ -0,0 +1,10 @@
+local dap, dapui = require("dap"), require("dapui")
+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
diff --git a/modules/development/nixvim/plugins/dap-ui/default.nix b/modules/development/nixvim/plugins/dap-ui/default.nix
new file mode 100644
index 0000000..eb83609
--- /dev/null
+++ b/modules/development/nixvim/plugins/dap-ui/default.nix
@@ -0,0 +1,28 @@
+# A UI for nvim-dap.
+{ config, lib, ... }:
+{
+ config.programs.nixvim = lib.mkIf config.development.nixvim.enable {
+ plugins.dap-ui = {
+ enable = true;
+ };
+
+ keymaps = [
+ # dap-ui controls
+ {
+ mode = "n";
+ key = "<leader>du";
+ action = "<cmd>lua require('dapui').toggle()<CR>";
+ options.desc = "Debug: Toggle UI";
+ }
+ {
+ mode = "n";
+ key = "<leader>de";
+ action = "<cmd>lua require('dapui').eval()<CR>";
+ options.desc = "Debug: Eval Expression Under Cursor";
+ }
+ ];
+
+ # Auto open/close dap-ui with the debug session lifecycle
+ extraConfigLua = builtins.readFile ./dap-ui.lua;
+ };
+}