Function: eca-find-root-for-buffer
eca-find-root-for-buffer is a natively compiled function defined in
eca-util.el.
Signature
(eca-find-root-for-buffer)
Documentation
Return the path that first matches the following:
- Buffer is within an existent eca session workspace-folder.
- Use `project` to return the project root if available.
- Otherwise return buffer file or `default-directory`.
Source Code
;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-util.el
(defun eca-find-root-for-buffer ()
"Return the path that first matches the following:
- Buffer is within an existent eca session workspace-folder.
- Use `project` to return the project root if available.
- Otherwise return buffer file or `default-directory`."
(let* ((default-path (or (when buffer-file-name (file-name-directory buffer-file-name))
default-directory))
(existing-sessions-folders (-keep (lambda (session)
(--first (or (f-same? it default-path)
(f-ancestor-of? it default-path))
(eca--session-workspace-folders session)))
(eca-vals eca--sessions))))
(or (when existing-sessions-folders
(-max-by (lambda (a b)
(> (length (expand-file-name a))
(length (expand-file-name b))))
existing-sessions-folders))
(when (fboundp 'project-current)
(when-let* ((project (project-current)))
(if (fboundp 'project-root)
(project-root project)
(car (with-no-warnings
(project-roots project))))))
default-path)))