From 502625c570716935c0555f553ac8fd152ab08895 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Mon, 13 Jun 2022 09:16:16 +0200 Subject: [PATCH] Exclude ignored files from the logged extension count --- crates/collab/src/rpc/store.rs | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/crates/collab/src/rpc/store.rs b/crates/collab/src/rpc/store.rs index e206bcee74be51f794e60123d15eba365ca2bee2..857f3515170b7f2041e06499b25276680d80302c 100644 --- a/crates/collab/src/rpc/store.rs +++ b/crates/collab/src/rpc/store.rs @@ -583,25 +583,41 @@ impl Store { let mut worktree = project.worktrees.entry(worktree_id).or_default(); let metadata_changed = worktree_root_name != worktree.root_name; worktree.root_name = worktree_root_name.to_string(); + for entry_id in removed_entries { if let Some(entry) = worktree.entries.remove(&entry_id) { - if let Some(extension) = extension_for_entry(&entry) { - if let Some(count) = worktree.extension_counts.get_mut(extension) { - *count = count.saturating_sub(1); + if !entry.is_ignored { + if let Some(extension) = extension_for_entry(&entry) { + if let Some(count) = worktree.extension_counts.get_mut(extension) { + *count = count.saturating_sub(1); + } } } } } + for entry in updated_entries { - if let Some(extension) = extension_for_entry(&entry) { - if let Some(count) = worktree.extension_counts.get_mut(extension) { - *count += 1; - } else { - worktree.extension_counts.insert(extension.into(), 1); + if let Some(old_entry) = worktree.entries.insert(entry.id, entry.clone()) { + if !old_entry.is_ignored { + if let Some(extension) = extension_for_entry(&old_entry) { + if let Some(count) = worktree.extension_counts.get_mut(extension) { + *count = count.saturating_sub(1); + } + } + } + } + + if !entry.is_ignored { + if let Some(extension) = extension_for_entry(&entry) { + if let Some(count) = worktree.extension_counts.get_mut(extension) { + *count += 1; + } else { + worktree.extension_counts.insert(extension.into(), 1); + } } } - worktree.entries.insert(entry.id, entry.clone()); } + worktree.scan_id = scan_id; Ok((connection_ids, metadata_changed, &worktree.extension_counts)) }