diff options
| -rw-r--r-- | src/main.rs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs index 6a4bcba..9c529f0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -122,6 +122,7 @@ fn draw_typing_game(f: &mut Frame<CrosstermBackend<std::io::Stdout>>, chunk: Rec let time_used = app.time_taken as f64; let mut colored_text: Vec<Span> = Vec::new(); + let cursor_pos = app.input_string.len(); // Iterate over each character in the current sentence and color it based on user input for (index, c) in app.current_sentence().chars().enumerate() { @@ -135,17 +136,24 @@ fn draw_typing_game(f: &mut Frame<CrosstermBackend<std::io::Stdout>>, chunk: Rec Color::Gray }; - let span = Span::styled(c.to_string(), Style::default().fg(color)); + // cursor + let span = if index == cursor_pos { + Span::styled( + c.to_string(), + Style::default().fg(color).add_modifier(Modifier::REVERSED), + ) + } else { + Span::styled(c.to_string(), Style::default().fg(color)) + }; colored_text.push(span); } - // Create text to be displayed let text = vec