From 7cbc20b43ad0f1fe48981914467cb931e42ac826 Mon Sep 17 00:00:00 2001 From: Dheepak Krishnamurthy Date: Mon, 5 Apr 2021 14:06:18 -0600 Subject: [PATCH] Refactor code --- src/app.rs | 6 ++---- src/{util.rs => event.rs} | 18 +----------------- src/keyconfig.rs | 3 +-- src/main.rs | 30 ++++++++++++++++++++++++++---- 4 files changed, 30 insertions(+), 27 deletions(-) rename src/{util.rs => event.rs} (86%) diff --git a/src/app.rs b/src/app.rs index cea2722..c75c96b 100644 --- a/src/app.rs +++ b/src/app.rs @@ -2,12 +2,12 @@ use crate::calendar::Calendar; use crate::config; use crate::config::Config; use crate::context::Context; +use crate::event::Key; +use crate::event::{Event, Events}; use crate::help::Help; use crate::keyconfig::KeyConfig; use crate::table::{Row, Table, TableMode, TableState}; use crate::task_report::TaskReportTable; -use crate::util::Key; -use crate::util::{Event, Events}; use std::cmp::Ordering; use std::collections::{HashMap, HashSet}; @@ -38,9 +38,7 @@ use anyhow::Result; use async_std::prelude::*; use async_std::stream::StreamExt; use async_std::task; -use futures::future::join_all; use futures::stream::FuturesOrdered; -use futures::{join, try_join}; use std::sync::{Arc, Mutex}; diff --git a/src/util.rs b/src/event.rs similarity index 86% rename from src/util.rs rename to src/event.rs index debd5d0..10f09cd 100644 --- a/src/util.rs +++ b/src/event.rs @@ -1,8 +1,7 @@ use crossterm::{ - cursor, event::{self, DisableMouseCapture, EnableMouseCapture, EventStream}, execute, - terminal::{disable_raw_mode, enable_raw_mode, Clear, ClearType, EnterAlternateScreen, LeaveAlternateScreen}, + terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, }; use tui::{backend::CrosstermBackend, Terminal}; @@ -51,21 +50,6 @@ pub enum Event { Tick, } -pub fn setup_terminal() -> Terminal> { - enable_raw_mode().unwrap(); - let mut stdout = io::stdout(); - execute!(stdout, EnterAlternateScreen).unwrap(); - execute!(stdout, Clear(ClearType::All)).unwrap(); - let backend = CrosstermBackend::new(stdout); - Terminal::new(backend).unwrap() -} - -pub fn destruct_terminal() { - disable_raw_mode().unwrap(); - execute!(io::stdout(), LeaveAlternateScreen, DisableMouseCapture).unwrap(); - execute!(io::stdout(), cursor::Show).unwrap(); -} - pub struct Events { pub rx: async_std::channel::Receiver>, } diff --git a/src/keyconfig.rs b/src/keyconfig.rs index ec12de5..0e05a1a 100644 --- a/src/keyconfig.rs +++ b/src/keyconfig.rs @@ -1,7 +1,6 @@ #![allow(clippy::eval_order_dependence)] -use crate::util::Key; +use crate::event::Key; use anyhow::{anyhow, Result}; -use futures::join; use serde::{Deserialize, Serialize}; use std::collections::HashSet; use std::error::Error; diff --git a/src/main.rs b/src/main.rs index 8d13b86..a36340e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,19 +6,19 @@ mod app; mod calendar; mod config; mod context; +mod event; mod help; mod history; mod keyconfig; mod table; mod task_report; -mod util; -use crate::util::{destruct_terminal, setup_terminal, Event, EventConfig, Events}; +use crate::event::{Event, EventConfig, Events, Key}; use anyhow::Result; use clap::{App, Arg}; use std::env; use std::error::Error; -use std::io::Write; +use std::io::{self, Write}; use std::panic; use std::time::Duration; @@ -27,12 +27,34 @@ use async_std::sync::{Arc, Mutex}; use async_std::task; use futures::stream::{FuturesUnordered, StreamExt}; -use crate::util::Key; +use crossterm::{ + cursor, + event::{DisableMouseCapture, EnableMouseCapture, EventStream}, + execute, + terminal::{disable_raw_mode, enable_raw_mode, Clear, ClearType, EnterAlternateScreen, LeaveAlternateScreen}, +}; +use tui::{backend::CrosstermBackend, Terminal}; + use app::{AppMode, TaskwarriorTuiApp}; const APP_VERSION: &str = env!("CARGO_PKG_VERSION"); const APP_NAME: &str = env!("CARGO_PKG_NAME"); +pub fn setup_terminal() -> Terminal> { + enable_raw_mode().unwrap(); + let mut stdout = io::stdout(); + execute!(stdout, EnterAlternateScreen).unwrap(); + execute!(stdout, Clear(ClearType::All)).unwrap(); + let backend = CrosstermBackend::new(stdout); + Terminal::new(backend).unwrap() +} + +pub fn destruct_terminal() { + disable_raw_mode().unwrap(); + execute!(io::stdout(), LeaveAlternateScreen, DisableMouseCapture).unwrap(); + execute!(io::stdout(), cursor::Show).unwrap(); +} + fn main() { better_panic::install(); let matches = App::new(APP_NAME)