From cb477bfcfc84be838d01510f07594226898d7930 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 1 Jun 2025 08:24:16 +0530 Subject: [PATCH] Implement shift+tab to move up a level --- kittens/choose_files/main.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/kittens/choose_files/main.go b/kittens/choose_files/main.go index 2284d9f9f..b55658b3b 100644 --- a/kittens/choose_files/main.go +++ b/kittens/choose_files/main.go @@ -55,6 +55,11 @@ func (s *State) SetSearchText(val string) { } } func (s *State) SetCurrentDir(val string) { + if val == "." { + if q, err := os.Getwd(); err == nil { + val = q + } + } if s.CurrentDir() != val { s.search_text = "" s.current_idx = 0 @@ -152,6 +157,20 @@ func (h *Handler) OnKeyEvent(ev *loop.KeyEvent) (err error) { } } h.lp.Beep() + case ev.MatchesPressOrRepeat("shift+tab"): + curr := h.state.CurrentDir() + switch curr { + case "/": + case ".": + if curr, err = os.Getwd(); err == nil && curr != "/" { + h.state.SetCurrentDir(filepath.Dir(curr)) + return h.draw_screen() + } + default: + h.state.SetCurrentDir(filepath.Dir(curr)) + return h.draw_screen() + } + h.lp.Beep() } return }