aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/ui
diff options
context:
space:
mode:
authorPhilipp Mildenberger2022-03-01 11:57:57 +0000
committerGitHub2022-03-01 11:57:57 +0000
commit49c5bc59340c05a7fb79e29bad5452fb8d3d9b4f (patch)
tree99cf8953ff89135b164970331cd69679118efc3c /helix-term/src/ui
parent14e2ced440a2ba0f1794644f5cc1295a5738ad36 (diff)
Add jumplist support for the search (closes #1625) (#1718)
Diffstat (limited to 'helix-term/src/ui')
-rw-r--r--helix-term/src/ui/mod.rs23
1 files changed, 11 insertions, 12 deletions
diff --git a/helix-term/src/ui/mod.rs b/helix-term/src/ui/mod.rs
index 6ebe7f3a..011ad9ba 100644
--- a/helix-term/src/ui/mod.rs
+++ b/helix-term/src/ui/mod.rs
@@ -34,8 +34,8 @@ pub fn regex_prompt(
fun: impl Fn(&mut View, &mut Document, Regex, PromptEvent) + 'static,
) -> Prompt {
let (view, doc) = current!(cx.editor);
- let view_id = view.id;
- let snapshot = doc.selection(view_id).clone();
+ let doc_id = view.doc;
+ let snapshot = doc.selection(view.id).clone();
let offset_snapshot = view.offset;
let mut prompt = Prompt::new(
@@ -49,17 +49,16 @@ pub fn regex_prompt(
doc.set_selection(view.id, snapshot.clone());
view.offset = offset_snapshot;
}
- PromptEvent::Validate => {
- // TODO: push_jump to store selection just before jump
-
- match Regex::new(input) {
- Ok(regex) => {
- let (view, doc) = current!(cx.editor);
- fun(view, doc, regex, event);
- }
- Err(_err) => (), // TODO: mark command line as error
+ 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
if input.is_empty() {