gets _ZO_FZF_EXTRA_OPTS and add it to default fzf flags

This commit is contained in:
Jed 2025-03-23 18:44:24 +01:00
parent efac8588e9
commit 0fac6195a6
2 changed files with 37 additions and 20 deletions

View File

@ -99,26 +99,21 @@ impl Query {
fzf.env("FZF_DEFAULT_OPTS", fzf_opts)
} else {
fzf.args([
// Search mode
"--exact",
// Search result
"--no-sort",
// Interface
"--bind=ctrl-z:ignore,btab:up,tab:down",
"--cycle",
"--keep-right",
// Layout
"--border=sharp", // rounded edges don't display correctly on some terminals
"--height=45%",
"--info=inline",
"--layout=reverse",
// Display
"--tabstop=1",
// Scripting
"--exit-0",
])
.enable_preview()
let default_args = config::fzf_default_args();
let args = if let Some(fzf_extra_opts) = config::fzf_extra_opts() {
let extra_fzf_args_list: Vec<String> = fzf_extra_opts
.to_str()
.unwrap_or_default()
.split_whitespace()
.map(|arg| String::from(arg))
.collect();
vec![default_args, extra_fzf_args_list].concat()
} else {
default_args
};
fzf.args(args).enable_preview()
}
.spawn()
}

View File

@ -51,6 +51,28 @@ pub fn fzf_extra_opts() -> Option<OsString> {
env::var_os("_ZO_FZF_EXTRA_OPTS")
}
pub fn fzf_default_args() -> Vec<String> {
vec![
// Search mode
String::from("--exact"),
// Search result
String::from("--no-sort"),
// Interface
String::from("--bind=ctrl-z:ignore,btab:up,tab:down"),
String::from("--cycle"),
String::from("--keep-right"),
// Layout
String::from("--border=sharp"), // rounded edges don't display correctly on some terminals
String::from("--height=45%"),
String::from("--info=inline"),
String::from("--layout=reverse"),
// Display
String::from("--tabstop=1"),
// Scripting
String::from("--exit-0"),
]
}
pub fn maxage() -> Result<Rank> {
env::var_os("_ZO_MAXAGE").map_or(Ok(10_000.0), |maxage| {
let maxage = maxage.to_str().context("invalid unicode in _ZO_MAXAGE")?;