From 6310f6a57a51e2147a146477d1ef26eb63ae544b Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Thu, 7 Nov 2019 16:36:36 -0500 Subject: fix display for long search strings --- src/cmd/play.rs | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/src/cmd/play.rs b/src/cmd/play.rs index aa9d717..756c907 100644 --- a/src/cmd/play.rs +++ b/src/cmd/play.rs @@ -718,9 +718,18 @@ impl PlaySession { self.write( format!("\x1b[{};{}H", 4, size.cols - 32).as_bytes(), )?; - self.write( - format!("│ {:28} │", state.query.as_str()).as_bytes(), - )?; + let query_str = state.query.as_str(); + if query_str.len() > 26 { + self.write( + format!("│ /{:24}... │", &query_str[0..24]) + .as_bytes(), + )?; + } else { + let regex_str = format!("/{}/", query_str); + self.write( + format!("│ {:28} │", regex_str).as_bytes(), + )?; + } self.write( format!("\x1b[{};{}H", 5, size.cols - 32).as_bytes(), @@ -749,7 +758,17 @@ impl PlaySession { self.write( format!("\x1b[{};{}H", 4, size.cols - 32).as_bytes(), )?; - self.write(format!("│ {:28} │", query).as_bytes())?; + self.write( + format!( + "│ {:28} │", + if query.len() > 28 { + &query[query.len() - 28..] + } else { + query + } + ) + .as_bytes(), + )?; self.write( format!("\x1b[{};{}H", 5, size.cols - 32).as_bytes(), @@ -762,7 +781,7 @@ impl PlaySession { format!( "\x1b8\x1b[{};{}H\x1b[?25h", 4, - size.cols as usize - 32 + 2 + query.len() + size.cols as usize - 32 + 2 + query.len().min(28) ) .as_bytes(), )?; -- cgit v1.2.3-54-g00ecf