Function: projectile-locate-dominating-file-top-down

projectile-locate-dominating-file-top-down is a byte-compiled function defined in projectile.el.

Signature

(projectile-locate-dominating-file-top-down FILE NAME)

Documentation

Look up the directory hierarchy from FILE for a directory containing NAME.

Unlike projectile-locate-dominating-file which returns the first (bottommost) match, this returns the topmost match. Return nil if not found. Instead of a string, NAME can also be a predicate taking one argument
(a directory) and returning a non-nil value if that directory is the one for
which we're looking.

Source Code

;; Defined in ~/.emacs.d/elpa/projectile-20260310.858/projectile.el
(defun projectile-locate-dominating-file-top-down (file name)
  "Look up the directory hierarchy from FILE for a directory containing NAME.
Unlike `projectile-locate-dominating-file' which returns the first (bottommost)
match, this returns the topmost match.  Return nil if not found.
Instead of a string, NAME can also be a predicate taking one argument
\(a directory) and returning a non-nil value if that directory is the one for
which we're looking."
  (setq file (abbreviate-file-name file))
  (let ((root nil)
        try)
    (while (not (or (null file)
                    (string-match locate-dominating-stop-dir-regexp file)))
      (setq try (if (stringp name)
                    (projectile-file-exists-p (projectile-expand-file-name-wildcard name file))
                  (funcall name file)))
      (when try (setq root file))
      (if (equal file (setq file (file-name-directory
                                   (directory-file-name file))))
          (setq file nil)))
    (and root (expand-file-name (file-name-as-directory root)))))