From 4c6611f96b6a7d3e27bfb0c8e43d49f62dde493b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= Date: Wed, 3 Mar 2021 17:55:56 +0900 Subject: [PATCH] commands: Stop select_regex from breaking when no matches. --- helix-term/src/commands.rs | 8 +++----- helix-term/src/ui/mod.rs | 5 +++++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index bbd78092f..cb811c98a 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -307,11 +307,9 @@ pub fn select_all(cx: &mut Context) { pub fn select_regex(cx: &mut Context) { let prompt = ui::regex_prompt(cx, "select:".to_string(), |doc, regex| { let text = doc.text().slice(..); - // TODO: if select on matches returns empty range, we need to abort - // if regex empty or no matches, return - let selection = - selection::select_on_matches(text, doc.selection(), ®ex).expect("no matches"); - doc.set_selection(selection); + if let Some(selection) = selection::select_on_matches(text, doc.selection(), ®ex) { + doc.set_selection(selection); + } }); cx.push_layer(Box::new(prompt)); diff --git a/helix-term/src/ui/mod.rs b/helix-term/src/ui/mod.rs index 463ac3682..593da3ae2 100644 --- a/helix-term/src/ui/mod.rs +++ b/helix-term/src/ui/mod.rs @@ -45,6 +45,11 @@ pub fn regex_prompt( // } PromptEvent::Update => { + // skip empty input, TODO: trigger default + if input.is_empty() { + return; + } + match Regex::new(input) { Ok(regex) => { let view = &mut editor.view_mut();