From 4f3b72126a412cd1a5715d7842202d8e8ab8dcbe Mon Sep 17 00:00:00 2001 From: Frede Braendstrup Date: Mon, 18 Aug 2025 01:46:39 +0200 Subject: [PATCH] plugins/dap: add pipe type adapter --- plugins/by-name/dap/dapHelpers.nix | 19 +++++++++++++++++++ plugins/by-name/dap/default.nix | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/plugins/by-name/dap/dapHelpers.nix b/plugins/by-name/dap/dapHelpers.nix index cf6026ce55..5e6ae64c5a 100644 --- a/plugins/by-name/dap/dapHelpers.nix +++ b/plugins/by-name/dap/dapHelpers.nix @@ -77,6 +77,25 @@ rec { ''; }; + pipeAdapterOption = mkAdapterType { + pipe = lib.nixvim.defaultNullOpts.mkStr "$\{pipe}" "Pipe name."; + + executable = { + command = mkNullOrOption types.str "Command that spawns the adapter."; + + args = mkNullOrOption (types.listOf types.str) "Command arguments."; + + detached = lib.nixvim.defaultNullOpts.mkBool true "Spawn the debug adapter in detached state."; + + cwd = mkNullOrOption types.str "Working directory."; + }; + + options.timeout = lib.nixvim.defaultNullOpts.mkInt 5000 '' + Max amount of time in ms to wait between spaning the executable and connecting to the pipe. + This gives the executable time to create the pipe + ''; + }; + mkAdapterOption = name: type: mkNullOrOption (with types; attrsOf (either str type)) '' diff --git a/plugins/by-name/dap/default.nix b/plugins/by-name/dap/default.nix index 9182f3179e..c288053991 100644 --- a/plugins/by-name/dap/default.nix +++ b/plugins/by-name/dap/default.nix @@ -26,6 +26,7 @@ lib.nixvim.plugins.mkNeovimPlugin { adapters = lib.nixvim.mkCompositeOption "Dap adapters." { executables = dapHelpers.mkAdapterOption "executable" dapHelpers.executableAdapterOption; servers = dapHelpers.mkAdapterOption "server" dapHelpers.serverAdapterOption; + pipes = dapHelpers.mkAdapterOption "pipe" dapHelpers.pipeAdapterOption; }; configurations = @@ -70,6 +71,9 @@ lib.nixvim.plugins.mkNeovimPlugin { )) // (lib.optionalAttrs (cfg.adapters.servers != null) ( dapHelpers.processAdapters "server" cfg.adapters.servers + )) + // (lib.optionalAttrs (cfg.adapters.pipes != null) ( + dapHelpers.processAdapters "pipe" cfg.adapters.pipes )); signs = with cfg.signs; {