aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/ui/mod.rs
diff options
context:
space:
mode:
authorBlaž Hrastnik2022-06-06 15:08:47 +0000
committerBlaž Hrastnik2022-06-06 15:23:40 +0000
commitb14c258a2c447b892c89d3e68ef4c9a74effca85 (patch)
tree0e88e735936e48c2c82e4525fc957b3548995777 /helix-term/src/ui/mod.rs
parent8351a82c2cae58dd49c654d0e878c9d7227ef9c8 (diff)
prompt: If submitting empty prompt, use default (last used)
Diffstat (limited to 'helix-term/src/ui/mod.rs')
-rw-r--r--helix-term/src/ui/mod.rs19
1 files changed, 7 insertions, 12 deletions
diff --git a/helix-term/src/ui/mod.rs b/helix-term/src/ui/mod.rs
index 2dca870b..6dea2192 100644
--- a/helix-term/src/ui/mod.rs
+++ b/helix-term/src/ui/mod.rs
@@ -63,18 +63,8 @@ pub fn regex_prompt(
doc.set_selection(view.id, snapshot.clone());
view.offset = offset_snapshot;
}
- PromptEvent::Validate => match Regex::new(input) {
- Ok(regex) => {
- let (view, doc) = current!(cx.editor);
- // Equivalent to push_jump to store selection just before jump
- view.jumps.push((doc_id, snapshot.clone()));
- fun(view, doc, regex, event);
- }
- Err(_err) => (), // TODO: mark command line as error
- },
-
- PromptEvent::Update => {
- // skip empty input, TODO: trigger default
+ PromptEvent::Update | PromptEvent::Validate => {
+ // skip empty input
if input.is_empty() {
return;
}
@@ -96,6 +86,11 @@ pub fn regex_prompt(
// revert state to what it was before the last update
doc.set_selection(view.id, snapshot.clone());
+ if event == PromptEvent::Validate {
+ // Equivalent to push_jump to store selection just before jump
+ view.jumps.push((doc_id, snapshot.clone()));
+ }
+
fun(view, doc, regex, event);
view.ensure_cursor_in_view(doc, config.scrolloff);