@@ -4,13 +4,15 @@ use helix_core::Position;
44use helix_view::{Editor, Theme};
55use std::{borrow::Cow, ops::RangeFrom};
66
7+pub type Completion = (RangeFrom<usize>, Cow<'static, str>);
8+
79pub struct Prompt {
810 prompt: String,
911 pub line: String,
1012 cursor: usize,
11− completion: Vec<(RangeFrom<usize>, Cow<'static, str>)>,
13+ completion: Vec<Completion>,
1214 completion_selection_index: Option<usize>,
13− completion_fn: Box<dyn FnMut(&str) -> Vec<(RangeFrom<usize>, Cow<'static, str>)>>,
15+ completion_fn: Box<dyn FnMut(&str) -> Vec<Completion>>,
1416 callback_fn: Box<dyn FnMut(&mut Editor, &str, PromptEvent)>,
1517}
1618
@@ -27,7 +29,7 @@ pub enum PromptEvent {
2729impl Prompt {
2830 pub fn new(
2931 prompt: String,
30− mut completion_fn: impl FnMut(&str) -> Vec<(RangeFrom<usize>, Cow<'static, str>)> + 'static,
32+ mut completion_fn: impl FnMut(&str) -> Vec<Completion> + 'static,
3133 callback_fn: impl FnMut(&mut Editor, &str, PromptEvent) + 'static,
3234 ) -> Prompt {
3335 Prompt {