My personal-knowledge-system, with deeply integrated task tracking and long term goal planning capabilities.
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

refactor: move tui specific stuff into tui module

+32 -15
+2 -2
src/app.rs src/tui/app.rs
··· 7 7 use tracing::debug; 8 8 9 9 use crate::{ 10 - components::Component, 11 10 config::Config, 12 - signal::Signal, 13 11 tui::{Event, Tui}, 14 12 }; 13 + 14 + use super::{components::Component, signal::Signal}; 15 15 16 16 pub struct App { 17 17 config: Config,
+4 -1
src/components/mod.rs src/tui/components/mod.rs
··· 5 5 }; 6 6 use tokio::sync::mpsc::UnboundedSender; 7 7 8 - use crate::{config::Config, signal::Signal, tui::Event}; 8 + use crate::{ 9 + config::Config, 10 + tui::{Event, Signal}, 11 + }; 9 12 10 13 /// `Component` is a trait that represents a visual and interactive element of the user interface. 11 14 ///
+1 -1
src/config.rs
··· 11 11 sync::LazyLock, 12 12 }; 13 13 14 - use crate::keymap::KeyMap; 14 + use crate::tui::KeyMap; 15 15 16 16 /// Project Name: Filaments 17 17 pub static PROJECT_NAME: LazyLock<String> =
+3 -3
src/keymap.rs src/tui/keymap.rs
··· 7 7 use kdl::KdlNode; 8 8 use strum::IntoEnumIterator; 9 9 10 - use crate::{app::Region, signal::Signal}; 10 + use crate::tui::{Signal, app::Region}; 11 11 12 12 #[derive(Debug, Clone)] 13 13 pub struct KeyMap(pub HashMap<Region, HashMap<Vec<KeyEvent>, Signal>>); ··· 173 173 use crossterm::event::{KeyEvent, KeyModifiers}; 174 174 use kdl::KdlNode; 175 175 176 - use crate::{keymap::KeyMap, signal::Signal}; 176 + use crate::tui::{KeyMap, Signal, app::Region}; 177 177 178 178 #[test] 179 179 fn test_quit_in_home_region() { ··· 193 193 let keymap: KeyMap = kdl.try_into().expect("Must be a valid keymap"); 194 194 195 195 let map = keymap 196 - .get(&crate::app::Region::Home) 196 + .get(&Region::Home) 197 197 .expect("Home region must exist in keymap"); 198 198 199 199 let signal = map
+3 -8
src/main.rs
··· 2 2 //! My (suri.codes) personal-knowledge-system, with deeply integrated task tracking and long term goal planning capabilities. 3 3 //! 4 4 5 - use crate::{app::App, cli::Cli}; 5 + use crate::{cli::Cli, tui::TuiApp}; 6 6 use clap::Parser; 7 7 8 - mod app; 9 8 mod cli; 10 - mod components; 11 9 mod config; 12 10 mod errors; 13 - mod keymap; 14 11 mod logging; 15 - mod signal; 16 12 mod tui; 17 13 18 14 #[tokio::main] ··· 29 25 } 30 26 31 27 // if no command we run the app 32 - 33 - let mut app = App::new(args.tick_rate, args.frame_rate)?; 34 - app.run().await?; 28 + let mut tui = TuiApp::new(args.tick_rate, args.frame_rate)?; 29 + tui.run().await?; 35 30 36 31 Ok(()) 37 32 }
src/signal.rs src/tui/signal.rs
src/tui.rs src/tui/raw_tui.rs
+19
src/tui/mod.rs
··· 1 + /// The tui app 2 + mod app; 3 + pub use app::App as TuiApp; 4 + 5 + /// Tui components 6 + mod components; 7 + 8 + /// Raw tui abstraction 9 + mod raw_tui; 10 + pub use raw_tui::Event; 11 + pub use raw_tui::Tui; 12 + 13 + /// Keymap for mapping keybinds to regions 14 + mod keymap; 15 + pub use keymap::KeyMap; 16 + 17 + /// Singals for commands needing to be processed 18 + mod signal; 19 + pub use signal::Signal;