mirror of https://github.com/helix-editor/helix
refactor: extract into a type alias
parent
6dbb09f1fa
commit
a9612dad1d
|
@ -37,6 +37,8 @@ use std::fs;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use std::{error::Error, path::PathBuf};
|
use std::{error::Error, path::PathBuf};
|
||||||
|
|
||||||
|
use self::picker::PickerKeyHandler;
|
||||||
|
|
||||||
struct Utf8PathBuf {
|
struct Utf8PathBuf {
|
||||||
path: String,
|
path: String,
|
||||||
is_dir: bool,
|
is_dir: bool,
|
||||||
|
@ -667,6 +669,8 @@ pub fn file_explorer(
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type KeyHandler = PickerKeyHandler<(PathBuf, bool)>;
|
||||||
|
|
||||||
let picker = Picker::new(
|
let picker = Picker::new(
|
||||||
columns,
|
columns,
|
||||||
0,
|
0,
|
||||||
|
@ -689,11 +693,11 @@ pub fn file_explorer(
|
||||||
.with_cursor(cursor.unwrap_or_default())
|
.with_cursor(cursor.unwrap_or_default())
|
||||||
.with_preview(|_editor, (path, _is_dir)| Some((path.as_path().into(), None)))
|
.with_preview(|_editor, (path, _is_dir)| Some((path.as_path().into(), None)))
|
||||||
.with_key_handlers(hashmap! {
|
.with_key_handlers(hashmap! {
|
||||||
alt!('n') => Box::new(create_file) as Box<dyn Fn(&mut Context, &(PathBuf, bool), u32) + 'static>,
|
alt!('n') => Box::new(create_file) as KeyHandler,
|
||||||
alt!('m') => Box::new(move_file) as Box<dyn Fn(&mut Context, &(PathBuf, bool), u32) + 'static>,
|
alt!('m') => Box::new(move_file) as KeyHandler,
|
||||||
alt!('d') => Box::new(delete_file) as Box<dyn Fn(&mut Context, &(PathBuf, bool), u32) + 'static>,
|
alt!('d') => Box::new(delete_file) as KeyHandler,
|
||||||
alt!('c') => Box::new(copy_file) as Box<dyn Fn(&mut Context, &(PathBuf, bool), u32) + 'static>,
|
alt!('c') => Box::new(copy_file) as KeyHandler,
|
||||||
alt!('y') => Box::new(copy_path) as Box<dyn Fn(&mut Context, &(PathBuf, bool), u32) + 'static>
|
alt!('y') => Box::new(copy_path) as KeyHandler,
|
||||||
});
|
});
|
||||||
|
|
||||||
Ok(picker)
|
Ok(picker)
|
||||||
|
|
|
@ -259,7 +259,7 @@ pub struct Picker<T: 'static + Send + Sync, D: 'static> {
|
||||||
widths: Vec<Constraint>,
|
widths: Vec<Constraint>,
|
||||||
|
|
||||||
callback_fn: PickerCallback<T>,
|
callback_fn: PickerCallback<T>,
|
||||||
custom_key_handlers: PickerKeyHandler<T>,
|
custom_key_handlers: PickerKeyHandlers<T>,
|
||||||
|
|
||||||
pub truncate_start: bool,
|
pub truncate_start: bool,
|
||||||
/// Caches paths to documents
|
/// Caches paths to documents
|
||||||
|
@ -395,7 +395,7 @@ impl<T: 'static + Send + Sync, D: 'static + Send + Sync> Picker<T, D> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn with_key_handlers(mut self, handlers: PickerKeyHandler<T>) -> Self {
|
pub fn with_key_handlers(mut self, handlers: PickerKeyHandlers<T>) -> Self {
|
||||||
self.custom_key_handlers = handlers;
|
self.custom_key_handlers = handlers;
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
@ -1185,4 +1185,5 @@ impl<T: 'static + Send + Sync, D> Drop for Picker<T, D> {
|
||||||
}
|
}
|
||||||
|
|
||||||
type PickerCallback<T> = Box<dyn Fn(&mut Context, &T, Action)>;
|
type PickerCallback<T> = Box<dyn Fn(&mut Context, &T, Action)>;
|
||||||
pub type PickerKeyHandler<T> = HashMap<KeyEvent, Box<dyn Fn(&mut Context, &T, u32) + 'static>>;
|
pub type PickerKeyHandler<T> = Box<dyn Fn(&mut Context, &T, u32) + 'static>;
|
||||||
|
pub type PickerKeyHandlers<T> = HashMap<KeyEvent, PickerKeyHandler<T>>;
|
||||||
|
|
Loading…
Reference in New Issue