Skip "open this directory" menu entry in case of errors (#37872)

Kirill Bulatov created

Follow-up of https://github.com/zed-industries/zed/pull/37564

Release Notes:

- N/A

Change summary

crates/file_finder/src/open_path_prompt.rs       | 9 +++++----
crates/file_finder/src/open_path_prompt_tests.rs | 3 +++
2 files changed, 8 insertions(+), 4 deletions(-)

Detailed changes

crates/file_finder/src/open_path_prompt.rs 🔗

@@ -392,10 +392,11 @@ impl PickerDelegate for OpenPathDelegate {
                 let should_prepend_with_current_dir = this
                     .read_with(cx, |picker, _| {
                         !input_is_empty
-                            && !matches!(
-                                picker.delegate.directory_state,
-                                DirectoryState::Create { .. }
-                            )
+                            && match &picker.delegate.directory_state {
+                                DirectoryState::List { error, .. } => error.is_none(),
+                                DirectoryState::Create { .. } => false,
+                                DirectoryState::None { .. } => false,
+                            }
                     })
                     .unwrap_or(false);
                 if should_prepend_with_current_dir {

crates/file_finder/src/open_path_prompt_tests.rs 🔗

@@ -39,6 +39,9 @@ async fn test_open_path_prompt(cx: &mut TestAppContext) {
 
     let (picker, cx) = build_open_path_prompt(project, false, PathStyle::current(), cx);
 
+    insert_query(path!("sadjaoislkdjasldj"), &picker, cx).await;
+    assert_eq!(collect_match_candidates(&picker, cx), Vec::<String>::new());
+
     let query = path!("/root");
     insert_query(query, &picker, cx).await;
     assert_eq!(collect_match_candidates(&picker, cx), vec!["root"]);