|
|
@ -34,7 +34,27 @@ pub fn prompt(
|
|
|
|
completion_fn: impl FnMut(&Editor, &str) -> Vec<prompt::Completion> + 'static,
|
|
|
|
completion_fn: impl FnMut(&Editor, &str) -> Vec<prompt::Completion> + 'static,
|
|
|
|
callback_fn: impl FnMut(&mut crate::compositor::Context, &str, PromptEvent) + 'static,
|
|
|
|
callback_fn: impl FnMut(&mut crate::compositor::Context, &str, PromptEvent) + 'static,
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
let mut prompt = Prompt::new(prompt, history_register, completion_fn, callback_fn);
|
|
|
|
show_prompt(
|
|
|
|
|
|
|
|
cx,
|
|
|
|
|
|
|
|
Prompt::new(prompt, history_register, completion_fn, callback_fn),
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pub fn prompt_with_input(
|
|
|
|
|
|
|
|
cx: &mut crate::commands::Context,
|
|
|
|
|
|
|
|
prompt: std::borrow::Cow<'static, str>,
|
|
|
|
|
|
|
|
input: String,
|
|
|
|
|
|
|
|
history_register: Option<char>,
|
|
|
|
|
|
|
|
completion_fn: impl FnMut(&Editor, &str) -> Vec<prompt::Completion> + 'static,
|
|
|
|
|
|
|
|
callback_fn: impl FnMut(&mut crate::compositor::Context, &str, PromptEvent) + 'static,
|
|
|
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
show_prompt(
|
|
|
|
|
|
|
|
cx,
|
|
|
|
|
|
|
|
Prompt::new(prompt, history_register, completion_fn, callback_fn).with_line(input),
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fn show_prompt(cx: &mut crate::commands::Context, mut prompt: Prompt) {
|
|
|
|
// Calculate initial completion
|
|
|
|
// Calculate initial completion
|
|
|
|
prompt.recalculate_completion(cx.editor);
|
|
|
|
prompt.recalculate_completion(cx.editor);
|
|
|
|
cx.push_layer(Box::new(prompt));
|
|
|
|
cx.push_layer(Box::new(prompt));
|
|
|
|