summaryrefslogtreecommitdiffstats
path: root/src/skim.rs
diff options
context:
space:
mode:
authorquentin konieczko <konieczko@gmail.com>2023-02-28 07:07:55 +0100
committerquentin konieczko <konieczko@gmail.com>2023-02-28 07:07:55 +0100
commit70d22424742c5e83bbbdbb1f7210aa3680ba04e0 (patch)
treec2c015ea3a4c4a4e5e2c86d94a8f8f60c2ef321d /src/skim.rs
parent220d1bc95131f06c34c748ecbef0f460eae3d30b (diff)
refactor skim command line selections
Diffstat (limited to 'src/skim.rs')
-rw-r--r--src/skim.rs23
1 files changed, 10 insertions, 13 deletions
diff --git a/src/skim.rs b/src/skim.rs
index 835812d..a1e99f7 100644
--- a/src/skim.rs
+++ b/src/skim.rs
@@ -21,22 +21,19 @@ impl Skimer {
pub fn new(term: Arc<Term>) -> Self {
Self {
skim: Skim::new_from_term(term),
- previewer: Self::select_previewer().to_owned(),
- file_matcher: Self::select_file_matcher().to_owned(),
+ previewer: Self::select_installed_or_default(BAT_EXECUTABLE, CAT_EXECUTABLE).to_owned(),
+ file_matcher: Self::select_installed_or_default(RG_EXECUTABLE, GREP_EXECUTABLE)
+ .to_owned(),
}
}
- fn select_previewer<'a>() -> &'a str {
- match BAT_EXECUTABLE.split_whitespace().into_iter().next() {
- Some(bat) if is_program_in_path(bat) => BAT_EXECUTABLE,
- _ => CAT_EXECUTABLE,
- }
- }
-
- fn select_file_matcher<'a>() -> &'a str {
- match RG_EXECUTABLE.split_whitespace().into_iter().next() {
- Some(rg) if is_program_in_path(rg) => RG_EXECUTABLE,
- _ => GREP_EXECUTABLE,
+ fn select_installed_or_default<'a>(
+ candidate_program: &'a str,
+ default_program: &'a str,
+ ) -> &'a str {
+ match candidate_program.split_whitespace().into_iter().next() {
+ Some(program) if is_program_in_path(program) => candidate_program,
+ _ => default_program,
}
}