diff options
author | Piotr Wach <pwach@bloomberg.net> | 2024-01-06 20:57:06 +0000 |
---|---|---|
committer | Piotr Wach <pwach@bloomberg.net> | 2024-01-06 20:57:06 +0000 |
commit | 807916ced6e4ec195e0c3805181f3ccd78d69ce3 (patch) | |
tree | 3b86264904bcd30a95836d282e7fe0399f849efa /src | |
parent | b19c3e02b3f6a810a717235d9742466c8e1bf7d9 (diff) |
No Interactive enum
Diffstat (limited to 'src')
-rw-r--r-- | src/interactive/app/eventloop.rs | 15 | ||||
-rw-r--r-- | src/interactive/app/mod.rs | 2 | ||||
-rw-r--r-- | src/interactive/app/tests/utils.rs | 5 | ||||
-rw-r--r-- | src/main.rs | 8 |
4 files changed, 11 insertions, 19 deletions
diff --git a/src/interactive/app/eventloop.rs b/src/interactive/app/eventloop.rs index cec4506..10b5c14 100644 --- a/src/interactive/app/eventloop.rs +++ b/src/interactive/app/eventloop.rs @@ -387,7 +387,7 @@ impl TerminalApp { terminal: &mut Terminal<B>, options: WalkOptions, input_paths: Vec<PathBuf>, - mode: Interaction, + keys_rx: Receiver<Event>, ) -> Result<Option<KeyboardInputAndApp>> where B: Backend, @@ -397,13 +397,6 @@ impl TerminalApp { let mut display: DisplayOptions = options.clone().into(); display.byte_vis = ByteVisualization::PercentageAndBar; let mut window = MainWindow::default(); - let keys_rx = match mode { - Interaction::None => { - let (_, keys_rx) = crossbeam::channel::unbounded(); - keys_rx - } - Interaction::Full => input_channel(), - }; #[inline] fn fetch_buffered_key_events(keys_rx: &Receiver<Event>) -> Vec<Event> { @@ -490,12 +483,6 @@ impl TerminalApp { } } -pub enum Interaction { - Full, - #[allow(dead_code)] - None, -} - fn refresh_key() -> KeyEvent { KeyEvent::new(KeyCode::Char('\r'), KeyModifiers::ALT) } diff --git a/src/interactive/app/mod.rs b/src/interactive/app/mod.rs index f1e2925..8d27e46 100644 --- a/src/interactive/app/mod.rs +++ b/src/interactive/app/mod.rs @@ -2,7 +2,7 @@ mod bytevis; mod common; mod eventloop; mod handlers; -mod input; +pub mod input; mod navigation; pub mod tree_view; diff --git a/src/interactive/app/tests/utils.rs b/src/interactive/app/tests/utils.rs index 79defab..f865750 100644 --- a/src/interactive/app/tests/utils.rs +++ b/src/interactive/app/tests/utils.rs @@ -18,7 +18,7 @@ use std::{ use tui::backend::TestBackend; use tui_react::Terminal; -use crate::interactive::{app::tests::FIXTURE_PATH, Interaction, TerminalApp}; +use crate::interactive::{app::tests::FIXTURE_PATH, TerminalApp}; pub fn into_keys<'a>( codes: impl IntoIterator<Item = KeyCode> + 'a, @@ -175,6 +175,7 @@ pub fn initialized_app_and_terminal_with_closure( let mut terminal = new_test_terminal()?; std::env::set_current_dir(Path::new(env!("CARGO_MANIFEST_DIR")))?; + let (_, keys_rx) = crossbeam::channel::unbounded(); let input_paths = fixture_paths.iter().map(|c| convert(c.as_ref())).collect(); let app = TerminalApp::initialize( &mut terminal, @@ -188,7 +189,7 @@ pub fn initialized_app_and_terminal_with_closure( ignore_dirs: Default::default(), }, input_paths, - Interaction::None, + keys_rx, )? .map(|(_, app)| app); Ok(( diff --git a/src/main.rs b/src/main.rs index 9943270..6b9ffa3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,6 +7,8 @@ use simplelog::{Config, LevelFilter, WriteLogger}; use std::fs::OpenOptions; use std::{fs, io, io::Write, path::PathBuf, process}; +use crate::interactive::input::input_channel; + mod crossdev; #[cfg(feature = "tui-crossplatform")] mod interactive; @@ -51,7 +53,7 @@ fn main() -> Result<()> { let res = match opt.command { #[cfg(feature = "tui-crossplatform")] Some(Interactive { input }) => { - use crate::interactive::{Interaction, TerminalApp}; + use crate::interactive::{TerminalApp}; use anyhow::{anyhow, Context}; use crosstermion::terminal::{tui::new_terminal, AlternateRawScreen}; @@ -64,11 +66,13 @@ fn main() -> Result<()> { AlternateRawScreen::try_from(io::stderr()).with_context(|| no_tty_msg)?, ) .with_context(|| "Could not instantiate terminal")?; + + let keys_rx = input_channel(); let res = TerminalApp::initialize( &mut terminal, walk_options, extract_paths_maybe_set_cwd(input, !opt.stay_on_filesystem)?, - Interaction::Full, + keys_rx, )? .map(|(keys_rx, mut app)| { let res = app.process_events(&mut terminal, keys_rx.into_iter()); |