@@ -2280,7 +2280,6 @@ impl OutlinePanel {
// For a proper git status propagation, we have to keep the entries sorted lexicographically.
entries.sort_by(|a, b| a.path.as_ref().cmp(b.path.as_ref()));
worktree_snapshot.propagate_git_statuses(&mut entries);
- project::sort_worktree_entries(&mut entries);
(worktree_id, entries)
})
.flat_map(|(worktree_id, entries)| {
@@ -4654,61 +4654,6 @@ async fn test_search_in_gitignored_dirs(cx: &mut gpui::TestAppContext) {
);
}
-#[gpui::test]
-async fn test_search_ordering(cx: &mut gpui::TestAppContext) {
- init_test(cx);
-
- let fs = FakeFs::new(cx.background_executor.clone());
- fs.insert_tree(
- "/dir",
- json!({
- ".git": {},
- ".gitignore": "**/target\n/node_modules\n",
- "aaa.txt": "key:value",
- "bbb": {
- "index.txt": "index_key:index_value"
- },
- "node_modules": {
- "10 eleven": "key",
- "1 two": "key"
- },
- }),
- )
- .await;
- let project = Project::test(fs.clone(), ["/dir".as_ref()], cx).await;
-
- let mut search = project.update(cx, |project, cx| {
- project.search(
- SearchQuery::text(
- "key",
- false,
- false,
- true,
- Default::default(),
- Default::default(),
- None,
- )
- .unwrap(),
- cx,
- )
- });
-
- fn file_name(search_result: Option<SearchResult>, cx: &mut gpui::TestAppContext) -> String {
- match search_result.unwrap() {
- SearchResult::Buffer { buffer, .. } => buffer.read_with(cx, |buffer, _| {
- buffer.file().unwrap().path().to_string_lossy().to_string()
- }),
- _ => panic!("Expected buffer"),
- }
- }
-
- assert_eq!(file_name(search.next().await, cx), "bbb/index.txt");
- assert_eq!(file_name(search.next().await, cx), "node_modules/1 two");
- assert_eq!(file_name(search.next().await, cx), "node_modules/10 eleven");
- assert_eq!(file_name(search.next().await, cx), "aaa.txt");
- assert!(search.next().await.is_none())
-}
-
#[gpui::test]
async fn test_create_entry(cx: &mut gpui::TestAppContext) {
init_test(cx);
@@ -23,7 +23,7 @@ use smol::{
stream::StreamExt,
};
use text::ReplicaId;
-use util::{paths::compare_paths, ResultExt};
+use util::ResultExt;
use worktree::{Entry, ProjectEntryId, Worktree, WorktreeId, WorktreeSettings};
use crate::{search::SearchQuery, ProjectPath};
@@ -725,9 +725,7 @@ impl WorktreeStore {
!metadata.is_dir,
))
}
- results.sort_by(|(a_path, a_is_file), (b_path, b_is_file)| {
- compare_paths((a_path, *a_is_file), (b_path, *b_is_file))
- });
+ results.sort_by(|(a_path, _), (b_path, _)| a_path.cmp(b_path));
for (path, is_file) in results {
if is_file {
if query.filters_path() {
@@ -782,9 +780,7 @@ impl WorktreeStore {
) -> Result<()> {
let include_root = snapshots.len() > 1;
for (snapshot, settings) in snapshots {
- let mut entries: Vec<_> = snapshot.entries(query.include_ignored(), 0).collect();
- entries.sort_by(|a, b| compare_paths((&a.path, a.is_file()), (&b.path, b.is_file())));
- for entry in entries {
+ for entry in snapshot.entries(query.include_ignored(), 0) {
if entry.is_dir() && entry.is_ignored {
if !settings.is_path_excluded(&entry.path) {
Self::scan_ignored_dir(