helix icon indicating copy to clipboard operation
helix copied to clipboard

Split helix_core::find_root and helix_loader::find_local_config_dirs

Open rbino opened this issue 3 years ago • 0 comments
trafficstars

The documentation of find_root described the following priority for detecting a project root:

  • Top-most folder containing a root marker in current git repository
  • Git repository root if no marker detected
  • Top-most folder containing a root marker if not git repository detected
  • Current working directory as fallback

The commit contained in https://github.com/helix-editor/helix/pull/1249 extracted and changed the implementation of find_root in find_root_impl, actually reversing its result order (since that is the order that made sense for the local configuration merge, from innermost to outermost ancestors).

Since the two uses of find_root_impl have different requirements (and it's not a matter of reversing the order of results since, e.g., the top repository dir should be used by find_root only if there's not marker in other dirs), this PR splits the two implementations in two different specialized functions.

In doing so, find_root_impl is removed and the implementation is moved back in find_root, moving it closer to the documented behaviour thus making it easier to verify it's actually correct

rbino avatar Sep 21 '22 19:09 rbino