(defun project--find-in-directory (dir)
(run-hook-with-args-until-success 'project-find-functions dir))
+(defvar project--within-roots-fallback nil)
+
(cl-defgeneric project-root (project)
"Return root directory of the current project.
configuration file, etc. Though neither is mandatory.
The directory name must be absolute."
- (car (project-roots project)))
+ (if project--within-roots-fallback
+ (signal 'cl-no-applicable-method (list 'project-root project))
+ (car (project-roots project))))
(cl-defgeneric project-roots (project)
"Return the list containing the current project root.
;; FIXME: Can we specify project's version here?
;; FIXME: Could we make this affect cl-defmethod calls too?
(declare (obsolete project-root "0.3.0"))
- (list (project-root project)))
+ (let ((project--within-roots-fallback t))
+ (list (project-root project))))
;; FIXME: Add MODE argument, like in `ede-source-paths'?
(cl-defgeneric project-external-roots (_project)