diff options
Diffstat (limited to 'helix-term')
-rw-r--r-- | helix-term/src/commands/typed.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/helix-term/src/commands/typed.rs b/helix-term/src/commands/typed.rs index fd33e6b4..0f8884db 100644 --- a/helix-term/src/commands/typed.rs +++ b/helix-term/src/commands/typed.rs @@ -1172,6 +1172,26 @@ fn refresh_config( Ok(()) } +fn append_output( + cx: &mut compositor::Context, + args: &[Cow<str>], + _event: PromptEvent, +) -> anyhow::Result<()> { + ensure!(!args.is_empty(), "Shell command required"); + shell(cx, &args.join(" "), &ShellBehavior::Append); + Ok(()) +} + +fn insert_output( + cx: &mut compositor::Context, + args: &[Cow<str>], + _event: PromptEvent, +) -> anyhow::Result<()> { + ensure!(!args.is_empty(), "Shell command required"); + shell(cx, &args.join(" "), &ShellBehavior::Insert); + Ok(()) +} + fn pipe( cx: &mut compositor::Context, args: &[Cow<str>], @@ -1672,6 +1692,20 @@ pub const TYPABLE_COMMAND_LIST: &[TypableCommand] = &[ completer: None, }, TypableCommand { + name: "insert-output", + aliases: &[], + doc: "Run shell command, inserting output after each selection.", + fun: insert_output, + completer: None, + }, + TypableCommand { + name: "append-output", + aliases: &[], + doc: "Run shell command, appending output after each selection.", + fun: append_output, + completer: None, + }, + TypableCommand { name: "pipe", aliases: &[], doc: "Pipe each selection to the shell command.", |