mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
feat: add a new option --hovered to the open command allowing users to only open the currently hovered file (#687)
This commit is contained in:
parent
5c078aa18b
commit
53525b511e
1 changed files with 10 additions and 2 deletions
|
|
@ -10,6 +10,7 @@ use crate::{folder::Folder, manager::Manager, select::Select, tasks::Tasks};
|
||||||
pub struct Opt {
|
pub struct Opt {
|
||||||
targets: Vec<(Url, String)>,
|
targets: Vec<(Url, String)>,
|
||||||
interactive: bool,
|
interactive: bool,
|
||||||
|
hovered: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<Cmd> for Opt {
|
impl From<Cmd> for Opt {
|
||||||
|
|
@ -17,13 +18,21 @@ impl From<Cmd> for Opt {
|
||||||
Self {
|
Self {
|
||||||
targets: c.take_data().unwrap_or_default(),
|
targets: c.take_data().unwrap_or_default(),
|
||||||
interactive: c.named.contains_key("interactive"),
|
interactive: c.named.contains_key("interactive"),
|
||||||
|
hovered: c.named.contains_key("hovered"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Manager {
|
impl Manager {
|
||||||
pub fn open(&mut self, opt: impl Into<Opt>, tasks: &Tasks) {
|
pub fn open(&mut self, opt: impl Into<Opt>, tasks: &Tasks) {
|
||||||
let selected = self.selected_or_hovered();
|
let mut opt = opt.into() as Opt;
|
||||||
|
|
||||||
|
let selected = if opt.hovered {
|
||||||
|
self.hovered().map(|h| vec![&h.url]).unwrap_or_default()
|
||||||
|
} else {
|
||||||
|
self.selected_or_hovered()
|
||||||
|
};
|
||||||
|
|
||||||
if selected.is_empty() {
|
if selected.is_empty() {
|
||||||
return;
|
return;
|
||||||
} else if Self::quit_with_selected(&selected) {
|
} else if Self::quit_with_selected(&selected) {
|
||||||
|
|
@ -41,7 +50,6 @@ impl Manager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut opt = opt.into() as Opt;
|
|
||||||
if todo.is_empty() {
|
if todo.is_empty() {
|
||||||
opt.targets = done;
|
opt.targets = done;
|
||||||
return self.open_do(opt, tasks);
|
return self.open_do(opt, tasks);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue