blob: 582af07f0cf39c278f4fb9752ff509bf1b2f44fe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
use skim::prelude::*;
use tuikit::term::Term;
/// Used to call skim, a clone of fzf.
pub struct Skimer {
skim: Skim,
}
impl Skimer {
/// Creates a new `Skimer` instance.
/// `term` is an `Arc<term>` clone of the default term.
pub fn new(term: Arc<Term>) -> Self {
Self {
skim: Skim::new_from_term(term),
}
}
/// Call skim on its term.
/// Once the user has selected a file, it will returns its results
/// as a vec of skimitems.
pub fn no_source(&self, path_str: &str) -> Vec<Arc<dyn SkimItem>> {
self.skim
.run_internal(None, path_str.to_owned())
.map(|out| out.selected_items)
.unwrap_or_else(Vec::new)
}
}
|