From 083c66aacb94879b32cd8650a99bc26db850e9c9 Mon Sep 17 00:00:00 2001 From: Patrick Auernig Date: Thu, 28 Nov 2024 16:06:31 +0100 Subject: [PATCH] refactor: Remove normal mode and make search the default --- src/tui.rs | 40 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/src/tui.rs b/src/tui.rs index 77baeca..e228352 100644 --- a/src/tui.rs +++ b/src/tui.rs @@ -21,17 +21,15 @@ enum Message { SelectPrevious, SelectNext, Confirm, - Search, SearchUpdate, - ExitSearch, } #[derive(Debug, Default)] enum Mode { #[default] - Normal, Search, + Rename, } @@ -88,6 +86,12 @@ pub fn run(projects: Projects) -> Result<()> { ratatui::restore(); if let Some(selected_project) = state.selected_project { + // hacky stderr abuse + eprintln!( + "{}cd:{}", + env!("CARGO_BIN_NAME"), + selected_project.display() + ); write_selected_project_file(selected_project)? } @@ -97,18 +101,13 @@ pub fn run(projects: Projects) -> Result<()> { fn handle_key_event(state: &mut State, tx: &mut mpsc::Sender, event: KeyEvent) { let msg = match (&state.mode, event.modifiers, event.code) { - (Mode::Normal, KeyModifiers::NONE, KeyCode::Char('q') | KeyCode::Esc) => Message::Exit, - (Mode::Normal, KeyModifiers::NONE, KeyCode::Char('k') | KeyCode::Up) => { + (Mode::Search, KeyModifiers::CONTROL, KeyCode::Char('k') | KeyCode::Up) => { Message::SelectPrevious } - (Mode::Normal, KeyModifiers::NONE, KeyCode::Char('j') | KeyCode::Down) => { + (Mode::Search, KeyModifiers::CONTROL, KeyCode::Char('j') | KeyCode::Down) => { Message::SelectNext } - (Mode::Normal, KeyModifiers::NONE, KeyCode::Char('/')) => Message::Search, - - (Mode::Search, KeyModifiers::NONE, KeyCode::Esc) => Message::ExitSearch, - (Mode::Search, KeyModifiers::CONTROL, KeyCode::Char('k')) => Message::SelectPrevious, - (Mode::Search, KeyModifiers::CONTROL, KeyCode::Char('j')) => Message::SelectNext, + (Mode::Search, KeyModifiers::NONE, KeyCode::Esc) => Message::Exit, (Mode::Search, KeyModifiers::NONE | KeyModifiers::SHIFT, KeyCode::Char(c)) => { state.search.handle(InputRequest::InsertChar(c)); Message::SearchUpdate @@ -157,13 +156,6 @@ fn handle_messages(state: &mut State, rx: &mut mpsc::Receiver) -> Resul }; } } - Message::Search => { - state.mode = Mode::Search; - } - Message::ExitSearch => { - state.search = Input::default(); - state.mode = Mode::Normal; - } Message::SearchUpdate => { state.project_table.select_first(); } @@ -179,12 +171,6 @@ fn draw(state: &mut State, frame: &mut Frame) { frame.render_widget(&block, frame.area()); match state.mode { - Mode::Normal => { - let layout = Layout::vertical([Constraint::Fill(1)]); - let inner_area = block.inner(frame.area()); - let layout_rects = layout.split(inner_area); - draw_list(state, frame, layout_rects[0]); - } Mode::Search => { let layout = Layout::vertical([Constraint::Fill(1), Constraint::Max(2)]); let inner_area = block.inner(frame.area()); @@ -192,6 +178,12 @@ fn draw(state: &mut State, frame: &mut Frame) { draw_list(state, frame, layout_rects[0]); draw_search(state, frame, layout_rects[1]); } + Mode::Rename => { + let layout = Layout::vertical([Constraint::Fill(1)]); + let inner_area = block.inner(frame.area()); + let layout_rects = layout.split(inner_area); + draw_list(state, frame, layout_rects[0]); + } } }