diff --git a/crates/gpui/src/elements/flex.rs b/crates/gpui/src/elements/flex.rs index e0e8dfc215..857f3f56fc 100644 --- a/crates/gpui/src/elements/flex.rs +++ b/crates/gpui/src/elements/flex.rs @@ -66,6 +66,10 @@ impl Flex { self } + pub fn is_empty(&self) -> bool { + self.children.is_empty() + } + fn layout_flex_children( &mut self, layout_expanded: bool, diff --git a/crates/project/src/worktree.rs b/crates/project/src/worktree.rs index d663fc8b11..fccb382ca5 100644 --- a/crates/project/src/worktree.rs +++ b/crates/project/src/worktree.rs @@ -133,6 +133,10 @@ impl RepositoryEntry { pub(crate) fn in_dot_git(&self, path: &Path) -> bool { path.starts_with(self.git_dir_path.as_ref()) } + + pub fn branch(&self) -> Option> { + self.branch.clone() + } } /// This path corresponds to the 'content path' (the folder that contains the .git) @@ -160,6 +164,12 @@ impl Deref for RepositoryWorkDirectory { } } +impl<'a> From<&'a str> for RepositoryWorkDirectory { + fn from(value: &'a str) -> Self { + RepositoryWorkDirectory(Path::new(value).into()) + } +} + #[derive(Clone, Debug, Ord, PartialOrd, Eq, PartialEq)] pub struct RepoPath(PathBuf); @@ -1443,6 +1453,12 @@ impl Snapshot { &self.root_name } + pub fn root_git_entry(&self) -> Option { + self.repository_entries + .get(&"".into()) + .map(|entry| entry.to_owned()) + } + pub fn scan_id(&self) -> usize { self.scan_id }