Unfold range when selecting the next match
Antonio Scandurra
created
Selected matches are unfolded when in project search, buffer search and
when hitting `cmd-d` to select the next match.
Change summary
crates/editor/src/editor.rs | 2 ++
crates/search/src/buffer_search.rs | 8 +++-----
crates/search/src/project_search.rs | 1 +
3 files changed, 6 insertions(+), 5 deletions(-)
Detailed changes
@@ -3907,6 +3907,7 @@ impl Editor {
reversed: false,
goal: SelectionGoal::None,
});
+ self.unfold_ranges([next_selected_range], false, cx);
self.update_selections(selections, Some(Autoscroll::Newest), cx);
} else {
select_next_state.done = true;
@@ -3934,6 +3935,7 @@ impl Editor {
wordwise: true,
done: false,
};
+ self.unfold_ranges([selection.start..selection.end], false, cx);
self.update_selections(selections, Some(Autoscroll::Newest), cx);
self.select_next_state = Some(select_state);
} else {
@@ -336,11 +336,9 @@ impl SearchBar {
direction,
&editor.buffer().read(cx).read(cx),
);
- editor.select_ranges(
- [ranges[new_index].clone()],
- Some(Autoscroll::Fit),
- cx,
- );
+ let range_to_select = ranges[new_index].clone();
+ editor.unfold_ranges([range_to_select.clone()], false, cx);
+ editor.select_ranges([range_to_select], Some(Autoscroll::Fit), cx);
}
});
}
@@ -489,6 +489,7 @@ impl ProjectSearchView {
);
let range_to_select = model.match_ranges[new_index].clone();
self.results_editor.update(cx, |editor, cx| {
+ editor.unfold_ranges([range_to_select.clone()], false, cx);
editor.select_ranges([range_to_select], Some(Autoscroll::Fit), cx);
});
}