aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/commands.rs
diff options
context:
space:
mode:
Diffstat (limited to 'helix-term/src/commands.rs')
-rw-r--r--helix-term/src/commands.rs19
1 files changed, 11 insertions, 8 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index e0622559..8be0f83a 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -2199,8 +2199,8 @@ fn global_search(cx: &mut Context) {
all_matches,
current_path,
move |cx, FileResult { path, line_num }, action| {
- match cx.editor.open(path, action) {
- Ok(_) => {}
+ let doc = match cx.editor.open(path, action) {
+ Ok(id) => doc_mut!(cx.editor, &id),
Err(e) => {
cx.editor.set_error(format!(
"Failed to open file '{}': {}",
@@ -2209,10 +2209,9 @@ fn global_search(cx: &mut Context) {
));
return;
}
- }
-
+ };
let line_num = *line_num;
- let (view, doc) = current!(cx.editor);
+ let view = view_mut!(cx.editor);
let text = doc.text();
if line_num >= text.len_lines() {
cx.editor.set_error("The line you jumped to does not exist anymore because the file has changed.");
@@ -2222,7 +2221,9 @@ fn global_search(cx: &mut Context) {
let end = text.line_to_char((line_num + 1).min(text.len_lines()));
doc.set_selection(view.id, Selection::single(start, end));
- align_view(doc, view, Align::Center);
+ if action.align_view(view, doc.id()){
+ align_view(doc, view, Align::Center);
+ }
}).with_preview(|_editor, FileResult { path, line_num }| {
Some((path.clone().into(), Some((*line_num, *line_num))))
});
@@ -2742,9 +2743,11 @@ fn jumplist_picker(cx: &mut Context) {
|cx, meta, action| {
cx.editor.switch(meta.id, action);
let config = cx.editor.config();
- let (view, doc) = current!(cx.editor);
+ let (view, doc) = (view_mut!(cx.editor), doc_mut!(cx.editor, &meta.id));
doc.set_selection(view.id, meta.selection.clone());
- view.ensure_cursor_in_view_center(doc, config.scrolloff);
+ if action.align_view(view, doc.id()) {
+ view.ensure_cursor_in_view_center(doc, config.scrolloff);
+ }
},
)
.with_preview(|editor, meta| {