From 196d7240a4caaa35f23d4c357f24849e93d56ea8 Mon Sep 17 00:00:00 2001 From: Dongdong Zhou Date: Thu, 21 Oct 2021 22:33:21 +0100 Subject: [PATCH] terminal search --- core/src/terminal.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/core/src/terminal.rs b/core/src/terminal.rs index 4c29f8fc..c0f2c8ee 100644 --- a/core/src/terminal.rs +++ b/core/src/terminal.rs @@ -587,9 +587,29 @@ pub fn run(&mut self, receiver: Receiver) -> Result<()> { } TerminalEvent::SearchNext(search_string, direction) => { if let Ok(dfas) = RegexSearch::new(&search_string) { + let mut point = self.term.renderable_content().cursor.point; + if direction == Direction::Right { + if point.column.0 < self.term.last_column() { + point.column.0 += 1; + } else { + if point.line.0 < self.term.bottommost_line() { + point.column.0 = 0; + point.line.0 += 1; + } + } + } else { + if point.column.0 > 0 { + point.column.0 -= 1; + } else { + if point.line.0 > self.term.topmost_line() { + point.column.0 = self.term.last_column().0; + point.line.0 -= 1; + } + } + } if let Some(m) = self.term.search_next( &dfas, - self.term.renderable_content().cursor.point, + point, direction, Side::Left, None,