From 22094f4862645cbf0b42cad5d2165289478d0951 Mon Sep 17 00:00:00 2001 From: John Date: Mon, 20 Oct 2025 00:40:22 -0400 Subject: [PATCH] main: Clear screen on mode change --- src/main.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 920a8d4..8470210 100644 --- a/src/main.rs +++ b/src/main.rs @@ -20,13 +20,17 @@ use std::{ io::{IsTerminal, stdin}, }; +fn clear() { + print!("\x1b[H\x1b[2J\x1b[3J"); +} + fn main() -> Result<(), Box> { if stdin().is_terminal() { read_and("\x1b[32m", ".>", " >", |line| match line.trim_end() { "" => Ok(Response::Continue), "exit" => Ok(Response::Break), "clear" => { - print!("\x1b[H\x1b[2J"); + clear(); Ok(Response::Deny) } "lex" => { @@ -66,6 +70,7 @@ fn main() -> Result<(), Box> { } fn lex() -> Result<(), Box> { + clear(); read_and("\x1b[93m", " >", "?>", |line| { let mut lexer = Lexer::new(line); if line.trim().is_empty() { @@ -90,6 +95,7 @@ fn lex() -> Result<(), Box> { } fn exprs() -> Result<(), Box> { + clear(); read_and("\x1b[93m", ".>", " >", |line| { let mut parser = Parser::new(Lexer::new(line)); if line.trim().is_empty() { @@ -113,6 +119,7 @@ fn exprs() -> Result<(), Box> { } fn pats() -> Result<(), Box> { + clear(); read_and("\x1b[94m", " >", "?>", |line| { let mut parser = Parser::new(Lexer::new(line)); if line.trim().is_empty() { @@ -135,6 +142,7 @@ fn pats() -> Result<(), Box> { } fn tys() -> Result<(), Box> { + clear(); read_and("\x1b[94m", ".>", " >", |line| { let mut parser = Parser::new(Lexer::new(line)); if line.trim().is_empty() {