summaryrefslogtreecommitdiff
path: root/src/watch/state.rs
diff options
context:
space:
mode:
authormo8it <mo8it@proton.me>2024-08-25 20:31:08 +0200
committermo8it <mo8it@proton.me>2024-08-25 20:31:08 +0200
commit360605e2840d7b8876afac6df5178c068484cd57 (patch)
treee453cf5ab30f40e976ce16ee373a2b0fb2f88283 /src/watch/state.rs
parent47976caa69e24ea9ee5d38918a0abea89ff10983 (diff)
parent64772544fad6788fd3fce5db3f357dba6f2d8d23 (diff)
Merge branch 'rm-ratatui'
Diffstat (limited to 'src/watch/state.rs')
-rw-r--r--src/watch/state.rs16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/watch/state.rs b/src/watch/state.rs
index 6bf8e69..40e3d3e 100644
--- a/src/watch/state.rs
+++ b/src/watch/state.rs
@@ -1,5 +1,5 @@
use anyhow::Result;
-use ratatui::crossterm::{
+use crossterm::{
style::{style, Stylize},
terminal,
};
@@ -9,7 +9,7 @@ use crate::{
app_state::{AppState, ExercisesProgress},
clear_terminal,
exercise::{RunnableExercise, OUTPUT_CAPACITY},
- progress_bar::progress_bar,
+ term::progress_bar,
terminal_link::TerminalFileLink,
};
@@ -76,7 +76,8 @@ impl<'a> WatchState<'a> {
self.done_status = DoneStatus::Pending;
}
- self.render()
+ self.render()?;
+ Ok(())
}
pub fn handle_file_change(&mut self, exercise_ind: usize) -> Result<()> {
@@ -120,7 +121,7 @@ impl<'a> WatchState<'a> {
self.writer.flush()
}
- pub fn render(&mut self) -> Result<()> {
+ pub fn render(&mut self) -> io::Result<()> {
// Prevent having the first line shifted if clearing wasn't successful.
self.writer.write_all(b"\n")?;
clear_terminal(&mut self.writer)?;
@@ -155,14 +156,15 @@ impl<'a> WatchState<'a> {
}
let line_width = terminal::size()?.0;
- let progress_bar = progress_bar(
+ progress_bar(
+ &mut self.writer,
self.app_state.n_done(),
self.app_state.exercises().len() as u16,
line_width,
)?;
writeln!(
self.writer,
- "{progress_bar}Current exercise: {}",
+ "\nCurrent exercise: {}",
self.app_state.current_exercise().terminal_link(),
)?;
@@ -171,7 +173,7 @@ impl<'a> WatchState<'a> {
Ok(())
}
- pub fn show_hint(&mut self) -> Result<()> {
+ pub fn show_hint(&mut self) -> io::Result<()> {
self.show_hint = true;
self.render()
}