|
|
|
@ -225,13 +225,16 @@ pub fn merge_toml_values(left: toml::Value, right: toml::Value, merge_depth: usi
|
|
|
|
|
/// Used as a ceiling dir for LSP root resolution, the filepicker and potentially as a future filewatching root
|
|
|
|
|
///
|
|
|
|
|
/// This function starts searching the FS upward from the CWD
|
|
|
|
|
/// and returns the first directory that contains either `.git` or `.helix`.
|
|
|
|
|
/// and returns the first directory that contains either `.git`, `.svn` or `.helix`.
|
|
|
|
|
/// If no workspace was found returns (CWD, true).
|
|
|
|
|
/// Otherwise (workspace, false) is returned
|
|
|
|
|
pub fn find_workspace() -> (PathBuf, bool) {
|
|
|
|
|
let current_dir = current_working_dir();
|
|
|
|
|
for ancestor in current_dir.ancestors() {
|
|
|
|
|
if ancestor.join(".git").exists() || ancestor.join(".helix").exists() {
|
|
|
|
|
if ancestor.join(".git").exists()
|
|
|
|
|
|| ancestor.join(".svn").exists()
|
|
|
|
|
|| ancestor.join(".helix").exists()
|
|
|
|
|
{
|
|
|
|
|
return (ancestor.to_owned(), false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|