Allow guests to create directories

This commit is contained in:
Max Brunsfeld 2022-05-04 16:52:46 -07:00
parent 40e0f10195
commit 509ede0e80
2 changed files with 29 additions and 6 deletions

View file

@ -1899,6 +1899,33 @@ mod tests {
[".zed.toml", "a.txt", "b.txt", "d.txt"]
);
});
project_b
.update(cx_b, |project, cx| {
project
.create_entry((worktree_id, "DIR"), true, cx)
.unwrap()
})
.await
.unwrap();
worktree_a.read_with(cx_a, |worktree, _| {
assert_eq!(
worktree
.paths()
.map(|p| p.to_string_lossy())
.collect::<Vec<_>>(),
[".zed.toml", "DIR", "a.txt", "b.txt", "d.txt"]
);
});
worktree_b.read_with(cx_b, |worktree, _| {
assert_eq!(
worktree
.paths()
.map(|p| p.to_string_lossy())
.collect::<Vec<_>>(),
[".zed.toml", "DIR", "a.txt", "b.txt", "d.txt"]
);
});
}
#[gpui::test(iterations = 10)]

View file

@ -3829,12 +3829,8 @@ impl Project {
.ok_or_else(|| anyhow!("worktree not found"))?;
worktree.update(cx, |worktree, cx| {
let worktree = worktree.as_local_mut().unwrap();
if envelope.payload.is_directory {
unimplemented!("can't yet create directories");
} else {
let path = PathBuf::from(OsString::from_vec(envelope.payload.path));
anyhow::Ok(worktree.write_file(path, Default::default(), cx))
}
let path = PathBuf::from(OsString::from_vec(envelope.payload.path));
anyhow::Ok(worktree.create_entry(path, envelope.payload.is_directory, cx))
})
})?
.await?;