diff options
-rw-r--r-- | src/tab.rs | 3 | ||||
-rw-r--r-- | src/trees.rs | 36 |
2 files changed, 9 insertions, 30 deletions
@@ -371,7 +371,8 @@ impl Tab { /// Select the previous siblging pub fn tree_select_prev(&mut self) -> Result<()> { - self.tree.select_prev() + self.tree.select_prev(); + Ok(()) } /// Select the first child if any. diff --git a/src/trees.rs b/src/trees.rs index fab2b65..307c362 100644 --- a/src/trees.rs +++ b/src/trees.rs @@ -227,58 +227,36 @@ impl FileSystem { } /// Select previous sibling or the parent - pub fn select_prev(&mut self) -> Result<()> { + pub fn select_prev(&mut self) { let current_path = self.selected().to_owned(); let Some(parent_path) = current_path.parent() else { - return Ok(()); + return; }; let Some(parent_node) = self.nodes.get(parent_path) else { - return Ok(()); + return; }; let Some(siblings_paths) = &parent_node.children else { - return Ok(()); + return; }; let Some(index_current) = siblings_paths.iter().position(|path| path == ¤t_path) else { - return Ok(()); + return; }; if index_current > 0 { // Previous sibling self.selected = siblings_paths[index_current - 1].to_owned(); let Some(node) = self.nodes.get_mut(&self.selected) else { - return Ok(()); + return; }; node.select(); } else { // parent let Some(node) = self.nodes.get_mut(parent_path) else { - return Ok(()); + return; }; self.selected = parent_path.to_owned(); node.select(); } - Ok(()) - } - - // TODO: remove indentation with let ... else - /// Select previous sibling or parent if it's the first. - pub fn prev_not_working(&mut self) { - if let Some(parent) = self.selected.parent() { - if let Some(parent_node) = self.nodes.get(parent) { - if let Some(siblings) = &parent_node.children { - if let Some(index_selected) = - siblings.iter().position(|path| path == &self.selected) - { - if index_selected == 0 { - self.selected = parent.to_owned(); - } else if let Some(prev_sibling) = siblings.get(index_selected - 1) { - self.selected = prev_sibling.to_owned(); - } - self.select_current() - } - } - } - } } /// Fold selected node |