mirror of https://github.com/helix-editor/helix
add redraw command (#4354)
* add redraw command * update docs * Update helix-term/src/commands/typed.rs Co-authored-by: Michael Davis <mcarsondavis@gmail.com> * update docs Co-authored-by: Michael Davis <mcarsondavis@gmail.com>pull/5164/head
parent
42ad1a9e04
commit
f916915b53
|
@ -73,3 +73,4 @@
|
||||||
| `:pipe` | Pipe each selection to the shell command. |
|
| `:pipe` | Pipe each selection to the shell command. |
|
||||||
| `:pipe-to` | Pipe each selection to the shell command, ignoring output. |
|
| `:pipe-to` | Pipe each selection to the shell command, ignoring output. |
|
||||||
| `:run-shell-command`, `:sh` | Run a shell command |
|
| `:run-shell-command`, `:sh` | Run a shell command |
|
||||||
|
| `:redraw` | Clear and re-render the whole UI |
|
||||||
|
|
|
@ -1808,6 +1808,28 @@ fn run_shell_command(
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn redraw(
|
||||||
|
cx: &mut compositor::Context,
|
||||||
|
_args: &[Cow<str>],
|
||||||
|
event: PromptEvent,
|
||||||
|
) -> anyhow::Result<()> {
|
||||||
|
if event != PromptEvent::Validate {
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
|
let callback = Box::pin(async move {
|
||||||
|
let call: job::Callback = Box::new(|_editor, compositor| {
|
||||||
|
compositor.clear().expect("unable to redraw");
|
||||||
|
});
|
||||||
|
|
||||||
|
Ok(call)
|
||||||
|
});
|
||||||
|
|
||||||
|
cx.jobs.callback(callback);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
pub const TYPABLE_COMMAND_LIST: &[TypableCommand] = &[
|
pub const TYPABLE_COMMAND_LIST: &[TypableCommand] = &[
|
||||||
TypableCommand {
|
TypableCommand {
|
||||||
name: "quit",
|
name: "quit",
|
||||||
|
@ -2323,6 +2345,13 @@ pub const TYPABLE_COMMAND_LIST: &[TypableCommand] = &[
|
||||||
fun: run_shell_command,
|
fun: run_shell_command,
|
||||||
completer: Some(completers::directory),
|
completer: Some(completers::directory),
|
||||||
},
|
},
|
||||||
|
TypableCommand {
|
||||||
|
name: "redraw",
|
||||||
|
aliases: &[],
|
||||||
|
doc: "Clear and re-render the whole UI",
|
||||||
|
fun: redraw,
|
||||||
|
completer: None,
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
pub static TYPABLE_COMMAND_MAP: Lazy<HashMap<&'static str, &'static TypableCommand>> =
|
pub static TYPABLE_COMMAND_MAP: Lazy<HashMap<&'static str, &'static TypableCommand>> =
|
||||||
|
|
|
@ -197,6 +197,10 @@ impl Compositor {
|
||||||
.find(|component| component.id() == Some(id))
|
.find(|component| component.id() == Some(id))
|
||||||
.and_then(|component| component.as_any_mut().downcast_mut())
|
.and_then(|component| component.as_any_mut().downcast_mut())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn clear(&mut self) -> std::io::Result<()> {
|
||||||
|
self.terminal.clear()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// View casting, taken straight from Cursive
|
// View casting, taken straight from Cursive
|
||||||
|
|
Loading…
Reference in New Issue