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>
This commit is contained in:
parent
42ad1a9e04
commit
f916915b53
3 changed files with 34 additions and 0 deletions
|
@ -73,3 +73,4 @@
|
|||
| `:pipe` | Pipe each selection to the shell command. |
|
||||
| `:pipe-to` | Pipe each selection to the shell command, ignoring output. |
|
||||
| `: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(())
|
||||
}
|
||||
|
||||
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] = &[
|
||||
TypableCommand {
|
||||
name: "quit",
|
||||
|
@ -2323,6 +2345,13 @@ pub const TYPABLE_COMMAND_LIST: &[TypableCommand] = &[
|
|||
fun: run_shell_command,
|
||||
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>> =
|
||||
|
|
|
@ -197,6 +197,10 @@ impl Compositor {
|
|||
.find(|component| component.id() == Some(id))
|
||||
.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
|
||||
|
|
Loading…
Add table
Reference in a new issue