From 1d04e5938daf178dbbcdb2249f42f8485047d4cf Mon Sep 17 00:00:00 2001 From: Leoi Hung Kin Date: Fri, 17 Sep 2021 16:22:17 +0800 Subject: [PATCH] search_next_impl: don't panic on invalid regex (#740) --- helix-term/src/commands.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index d2a838ba..703b92d1 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -1154,8 +1154,15 @@ fn search_next_impl(cx: &mut Context, extend: bool) { if let Some(query) = registers.read('/') { let query = query.last().unwrap(); let contents = doc.text().slice(..).to_string(); - let regex = Regex::new(query).unwrap(); - search_impl(doc, view, &contents, ®ex, extend); + if let Ok(regex) = Regex::new(query) { + search_impl(doc, view, &contents, ®ex, extend); + } else { + // get around warning `mutable_borrow_reservation_conflict` + // which will be a hard error in the future + // see: https://github.com/rust-lang/rust/issues/59159 + let query = query.clone(); + cx.editor.set_error(format!("Invalid regex: {}", query)); + } } }