Function: f-traverse-upwards
f-traverse-upwards is a byte-compiled function defined in f.el.
Signature
(f-traverse-upwards FN &optional PATH)
Documentation
Traverse up as long as FN return nil, starting at PATH.
If FN returns a non-nil value, the path sent as argument to FN is returned. If no function callback return a non-nil value, nil is returned.
Other relevant functions are documented in the f group.
Shortdoc
;; f
(f-traverse-upwards #'(lambda (path) (f-exists\? (f-expand ".git" path))) start-path)
-> [it depends]
(f--traverse-upwards (f-exists\? (f-expand ".git" it)) start-path)
-> [it depends]
Source Code
;; Defined in ~/.emacs.d/elpa/f-20241003.1131/f.el
(defun f-traverse-upwards (fn &optional path)
"Traverse up as long as FN return nil, starting at PATH.
If FN returns a non-nil value, the path sent as argument to FN is
returned. If no function callback return a non-nil value, nil is
returned."
(unless path
(setq path default-directory))
(when (f-relative-p path)
(setq path (f-expand path)))
(if (funcall fn path)
path
(unless (f-root-p path)
(f-traverse-upwards fn (f-parent path)))))