diff --git a/zed/src/worktree.rs b/zed/src/worktree.rs index be2cb88fbc..5afa708495 100644 --- a/zed/src/worktree.rs +++ b/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) + ); + }); }); } }