WIP

Antonio Scandurra created

Change summary

zed/src/worktree.rs | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)

Detailed changes

zed/src/worktree.rs 🔗

@@ -428,16 +428,16 @@ impl BackgroundScanner {
     }
 
     fn run(&self) {
-        let scanner = self.clone();
         let event_stream = fsevent::EventStream::new(
             &[self.path.as_ref()],
             Duration::from_millis(100),
             |events| {
-                if let Err(err) = scanner.process_events(events) {
-                    // TODO: handle errors
-                    false
-                } else {
-                    true
+                match self.process_events(events) {
+                    Ok(alive) => alive,
+                    Err(err) => {
+                        // TODO: handle errors
+                        false
+                    }
                 }
             },
         );
@@ -954,7 +954,7 @@ mod tests {
             let tree = app.add_model(|ctx| Worktree::new(dir.path(), ctx));
             assert_condition(1, 300, || app.read(|ctx| tree.read(ctx).file_count() == 1)).await;
 
-            let file_entry = app.read(|ctx| {
+            let file_inode = app.read(|ctx| {
                 tree.read(ctx)
                     .snapshot()
                     .inode_for_path("dir1/file")
@@ -963,7 +963,7 @@ mod tests {
             app.read(|ctx| {
                 let tree = tree.read(ctx);
                 assert_eq!(
-                    tree.path_for_inode(file_entry, false)
+                    tree.path_for_inode(file_inode, false)
                         .unwrap()
                         .to_str()
                         .unwrap(),
@@ -975,14 +975,21 @@ mod tests {
             assert_condition(1, 300, || {
                 app.read(|ctx| {
                     let tree = tree.read(ctx);
-                    tree.path_for_inode(file_entry, false)
+                    tree.path_for_inode(file_inode, false)
                         .unwrap()
                         .to_str()
                         .unwrap()
                         == "dir2/file"
                 })
             })
-            .await
+            .await;
+            app.read(|ctx| {
+                let tree = tree.read(ctx);
+                assert_eq!(
+                    tree.snapshot().inode_for_path("dir2/file"),
+                    Some(file_inode)
+                );
+            });
         });
     }
 }