fix: make explorer filtering explicitly modal
This commit is contained in:
+10
-10
@@ -1454,7 +1454,7 @@ impl Editor {
|
||||
Input::Backspace if picker.view == FileView::List || picker.searching => {
|
||||
picker.backspace()
|
||||
}
|
||||
Input::Char('/') if picker.view == FileView::Tree && !picker.searching => {
|
||||
Input::Char('i') if picker.view == FileView::Tree && !picker.searching => {
|
||||
picker.start_search()
|
||||
}
|
||||
Input::Char(ch)
|
||||
@@ -3729,7 +3729,7 @@ mod tests {
|
||||
let directory = Directory::new();
|
||||
fs::write(directory.path("keep.txt"), "text").unwrap();
|
||||
let mut editor = project_editor(&directory);
|
||||
type_text(&mut editor, " e/keep");
|
||||
type_text(&mut editor, " eikeep");
|
||||
editor.handle(Input::Char('\t'));
|
||||
assert!(!editor.file_picker().unwrap().focused);
|
||||
fs::write(directory.path("keep new.txt"), "new").unwrap();
|
||||
@@ -3774,7 +3774,7 @@ mod tests {
|
||||
let id = editor.buffer_id();
|
||||
editor.execute(&format!("edit {}", b.display()));
|
||||
fs::write(&a, b"\xff").unwrap();
|
||||
type_text(&mut editor, " e/a space 界");
|
||||
type_text(&mut editor, " eia space 界");
|
||||
editor.handle(Input::Enter);
|
||||
assert_eq!(editor.buffer_id(), id);
|
||||
assert_eq!(editor.buffer_count(), 3);
|
||||
@@ -3886,7 +3886,7 @@ mod tests {
|
||||
type_text(&mut editor, " o");
|
||||
editor.execute("buffers");
|
||||
assert!(editor.file_picker().is_none());
|
||||
type_text(&mut editor, " e/file");
|
||||
type_text(&mut editor, " eifile");
|
||||
editor.execute("buffers");
|
||||
assert!(!editor.file_picker().unwrap().focused);
|
||||
assert_eq!(editor.file_picker().unwrap().query, "file");
|
||||
@@ -3903,7 +3903,7 @@ mod tests {
|
||||
editor
|
||||
.apply(vec![Effect::Replace("a\nb\nc\nd".into())])
|
||||
.unwrap();
|
||||
type_text(&mut editor, " e/file");
|
||||
type_text(&mut editor, " eifile");
|
||||
editor.handle(Input::Char('\t'));
|
||||
type_text(&mut editor, "2j");
|
||||
assert_eq!(editor.cursor().row, 2);
|
||||
@@ -4081,7 +4081,7 @@ mod tests {
|
||||
.entries()
|
||||
.map(|row| row.path.to_owned())
|
||||
.collect::<Vec<_>>();
|
||||
type_text(&mut editor, "/deep/");
|
||||
type_text(&mut editor, "ideep/");
|
||||
assert!(editor.file_picker().unwrap().searching);
|
||||
assert_eq!(editor.file_picker().unwrap().query, "deep/");
|
||||
editor.handle(Input::Ctrl('H'));
|
||||
@@ -4172,7 +4172,7 @@ mod tests {
|
||||
assert_eq!(editor.file_picker().unwrap().selected, 1);
|
||||
editor.handle(Input::Ctrl('j'));
|
||||
assert_eq!(editor.file_picker().unwrap().selected, 0);
|
||||
editor.handle(Input::Char('/'));
|
||||
editor.handle(Input::Char('i'));
|
||||
assert_eq!(
|
||||
editor.file_navigation_hint(),
|
||||
editor.selection_navigation_hint()
|
||||
@@ -4271,7 +4271,7 @@ mod tests {
|
||||
let mut editor = project_editor(&directory);
|
||||
editor.set_file_picker_view("tree").unwrap();
|
||||
editor.open_file_picker(presentation);
|
||||
type_text(&mut editor, "/needle.txt");
|
||||
type_text(&mut editor, "ineedle.txt");
|
||||
let picker = editor.file_picker().unwrap();
|
||||
assert_eq!(
|
||||
picker.entries().nth(picker.selected).unwrap().path,
|
||||
@@ -4286,7 +4286,7 @@ mod tests {
|
||||
editor.open_file_picker(presentation);
|
||||
editor.handle(Input::Ctrl('w'));
|
||||
editor.open_file_picker(presentation);
|
||||
type_text(&mut editor, "/module");
|
||||
type_text(&mut editor, "imodule");
|
||||
assert!(
|
||||
editor
|
||||
.file_picker()
|
||||
@@ -4332,7 +4332,7 @@ mod tests {
|
||||
editor.edit_buffer(b.clone(), false).unwrap();
|
||||
fs::write(&a, b"\xff").unwrap();
|
||||
editor.open_file_picker(presentation);
|
||||
type_text(&mut editor, "/same");
|
||||
type_text(&mut editor, "isame");
|
||||
let picker = editor.file_picker.as_mut().unwrap();
|
||||
let labels = picker
|
||||
.entries()
|
||||
|
||||
Reference in New Issue
Block a user