From 16f9e5d36c6aec6817e5569f490d45febc79292e Mon Sep 17 00:00:00 2001 From: Liam <33645555+lj3954@users.noreply.github.com> Date: Mon, 5 Aug 2024 17:08:38 -0700 Subject: [PATCH] feat: Allow navigation with 'h' and 'l' keys --- src/list.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/list.rs b/src/list.rs index 4bf11d55..abdde50e 100644 --- a/src/list.rs +++ b/src/list.rs @@ -282,13 +282,14 @@ impl CustomList { None } - KeyCode::Enter => { + KeyCode::Enter | KeyCode::Char('l') => { if self.preview_window_state.is_none() { self.handle_enter() } else { None } } + KeyCode::Char('h') if !self.at_root() => self.enter_parent_directory(), _ => None, } } @@ -384,6 +385,12 @@ impl CustomList { None } + fn enter_parent_directory(&mut self) -> Option { + self.visit_stack.pop(); + self.list_state.select(Some(0)); + None + } + /// Handles the key. This key can do 3 things: /// - Run a command, if it is the currently selected item, /// - Go up a directory @@ -401,9 +408,7 @@ impl CustomList { .unwrap(); if !self.at_root() && selected_index == 0 { - self.visit_stack.pop(); - self.list_state.select(Some(0)); - return None; + return self.enter_parent_directory(); } let mut actual_index = selected_index;