clippy: Factor out a Completion type.

This commit is contained in:
Blaž Hrastnik 2021-03-22 13:16:56 +09:00
parent cbcacb1063
commit 698e4ddea4
2 changed files with 8 additions and 5 deletions

View File

@ -137,9 +137,10 @@ pub fn buffer_picker(views: &[View], current: usize) -> Picker<(Option<PathBuf>,
} }
pub mod completers { pub mod completers {
use std::{borrow::Cow, ops::RangeFrom}; use crate::ui::prompt::Completion;
use std::borrow::Cow;
// TODO: we could return an iter/lazy thing so it can fetch as many as it needs. // TODO: we could return an iter/lazy thing so it can fetch as many as it needs.
pub fn filename(input: &str) -> Vec<(RangeFrom<usize>, Cow<'static, str>)> { pub fn filename(input: &str) -> Vec<Completion> {
// Rust's filename handling is really annoying. // Rust's filename handling is really annoying.
use ignore::WalkBuilder; use ignore::WalkBuilder;

View File

@ -4,13 +4,15 @@ use helix_core::Position;
use helix_view::{Editor, Theme}; use helix_view::{Editor, Theme};
use std::{borrow::Cow, ops::RangeFrom}; use std::{borrow::Cow, ops::RangeFrom};
pub type Completion = (RangeFrom<usize>, Cow<'static, str>);
pub struct Prompt { pub struct Prompt {
prompt: String, prompt: String,
pub line: String, pub line: String,
cursor: usize, cursor: usize,
completion: Vec<(RangeFrom<usize>, Cow<'static, str>)>, completion: Vec<Completion>,
completion_selection_index: Option<usize>, completion_selection_index: Option<usize>,
completion_fn: Box<dyn FnMut(&str) -> Vec<(RangeFrom<usize>, Cow<'static, str>)>>, completion_fn: Box<dyn FnMut(&str) -> Vec<Completion>>,
callback_fn: Box<dyn FnMut(&mut Editor, &str, PromptEvent)>, callback_fn: Box<dyn FnMut(&mut Editor, &str, PromptEvent)>,
} }
@ -27,7 +29,7 @@ pub enum PromptEvent {
impl Prompt { impl Prompt {
pub fn new( pub fn new(
prompt: String, prompt: String,
mut completion_fn: impl FnMut(&str) -> Vec<(RangeFrom<usize>, Cow<'static, str>)> + 'static, mut completion_fn: impl FnMut(&str) -> Vec<Completion> + 'static,
callback_fn: impl FnMut(&mut Editor, &str, PromptEvent) + 'static, callback_fn: impl FnMut(&mut Editor, &str, PromptEvent) + 'static,
) -> Prompt { ) -> Prompt {
Prompt { Prompt {