summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPiotr Wach <pwach@bloomberg.net>2024-01-06 20:57:06 +0000
committerPiotr Wach <pwach@bloomberg.net>2024-01-06 20:57:06 +0000
commit807916ced6e4ec195e0c3805181f3ccd78d69ce3 (patch)
tree3b86264904bcd30a95836d282e7fe0399f849efa /src
parentb19c3e02b3f6a810a717235d9742466c8e1bf7d9 (diff)
No Interactive enum
Diffstat (limited to 'src')
-rw-r--r--src/interactive/app/eventloop.rs15
-rw-r--r--src/interactive/app/mod.rs2
-rw-r--r--src/interactive/app/tests/utils.rs5
-rw-r--r--src/main.rs8
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());