diff options
author | Leoi Hung Kin | 2021-09-17 08:22:17 +0000 |
---|---|---|
committer | GitHub | 2021-09-17 08:22:17 +0000 |
commit | 1d04e5938daf178dbbcdb2249f42f8485047d4cf (patch) | |
tree | abd0dd31a302a312433e6e540a5c72e26a36620c | |
parent | 3ff5b001ac721606b68a594958abeee8832a023e (diff) |
search_next_impl: don't panic on invalid regex (#740)
-rw-r--r-- | helix-term/src/commands.rs | 11 |
1 files 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)); + } } } |