summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/app_state.rs1
-rw-r--r--src/main.rs4
-rw-r--r--src/term.rs38
3 files changed, 26 insertions, 17 deletions
diff --git a/src/app_state.rs b/src/app_state.rs
index db9d1f1..41231ef 100644
--- a/src/app_state.rs
+++ b/src/app_state.rs
@@ -520,7 +520,6 @@ impl AppState {
}
self.write()?;
- stdout.write_all(b"\n")?;
Ok(first_pending_exercise_ind)
}
diff --git a/src/main.rs b/src/main.rs
index 075e726..5616d26 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -151,13 +151,15 @@ fn main() -> Result<ExitCode> {
app_state.set_current_exercise_ind(first_pending_exercise_ind)?;
}
+ stdout.write_all(b"\n\n")?;
+
let pending = app_state.n_pending();
if pending == 1 {
stdout.write_all(b"One exercise pending: ")?;
} else {
write!(
stdout,
- "{pending}/{} exercises are pending. The first: ",
+ "{pending}/{} exercises pending. The first: ",
app_state.exercises().len(),
)?;
}
diff --git a/src/term.rs b/src/term.rs
index 0294017..8a2f8c5 100644
--- a/src/term.rs
+++ b/src/term.rs
@@ -164,26 +164,34 @@ pub fn show_exercises_check_progress(
let mut exercise_num = 1;
for exercise_progress in progresses {
- let color = match exercise_progress {
- ExerciseCheckProgress::None => Color::Reset,
- ExerciseCheckProgress::Checking => Color::Blue,
- ExerciseCheckProgress::Done => Color::Green,
- ExerciseCheckProgress::Pending => Color::Red,
- };
-
- stdout.queue(SetForegroundColor(color))?;
+ match exercise_progress {
+ ExerciseCheckProgress::None => (),
+ ExerciseCheckProgress::Checking => {
+ stdout.queue(SetForegroundColor(Color::Blue))?;
+ }
+ ExerciseCheckProgress::Done => {
+ stdout.queue(SetForegroundColor(Color::Green))?;
+ }
+ ExerciseCheckProgress::Pending => {
+ stdout.queue(SetForegroundColor(Color::Red))?;
+ }
+ }
+
write!(stdout, "{exercise_num:<3}")?;
+ stdout.queue(ResetColor)?;
- if exercise_num % n_cols == 0 {
- stdout.write_all(b"\n")?;
- } else {
- stdout.write_all(b" ")?;
- }
+ if exercise_num != progresses.len() {
+ if exercise_num % n_cols == 0 {
+ stdout.write_all(b"\n")?;
+ } else {
+ stdout.write_all(b" ")?;
+ }
- exercise_num += 1;
+ exercise_num += 1;
+ }
}
- stdout.queue(ResetColor)?.flush()
+ stdout.flush()
}
pub fn clear_terminal(stdout: &mut StdoutLock) -> io::Result<()> {