Improve outline panel keyboard navigation (#20385)
Closes https://github.com/zed-industries/zed/issues/20187 Make outline panel more eager to open its entries: * scroll editor to selected outline entries (before it required an extra `"outline_panel::Open", { "change_selection": false }` action call) * make any `Open` action call to behave like `"outline_panel::Open", { "change_selection": true }` and remove the redundant parameter. Now opening an entry is equal to double clicking the same entry: the editor gets scrolled and its selection changes * add a way to open entries the same way as excerpts are open in multi buffers (will open the entire file, scroll and place the caret) * additionally, fix another race issue that caused wrong entry to be revealed after the selection change Release Notes: - Improved outline panel keyboard navigation
This commit is contained in:
parent
6606e6e37f
commit
176314bfd2
4 changed files with 254 additions and 32 deletions
|
@ -49,6 +49,7 @@ pub mod test;
|
|||
|
||||
use ::git::diff::DiffHunkStatus;
|
||||
pub(crate) use actions::*;
|
||||
pub use actions::{OpenExcerpts, OpenExcerptsSplit};
|
||||
use aho_corasick::AhoCorasick;
|
||||
use anyhow::{anyhow, Context as _, Result};
|
||||
use blink_manager::BlinkManager;
|
||||
|
@ -12579,11 +12580,11 @@ impl Editor {
|
|||
});
|
||||
}
|
||||
|
||||
fn open_excerpts_in_split(&mut self, _: &OpenExcerptsSplit, cx: &mut ViewContext<Self>) {
|
||||
pub fn open_excerpts_in_split(&mut self, _: &OpenExcerptsSplit, cx: &mut ViewContext<Self>) {
|
||||
self.open_excerpts_common(true, cx)
|
||||
}
|
||||
|
||||
fn open_excerpts(&mut self, _: &OpenExcerpts, cx: &mut ViewContext<Self>) {
|
||||
pub fn open_excerpts(&mut self, _: &OpenExcerpts, cx: &mut ViewContext<Self>) {
|
||||
self.open_excerpts_common(false, cx)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue