diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index d849f93..3fd1358 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -27,7 +27,8 @@ (require 'cl-generic) -(defvar project-find-functions (list #'project-try-vc +(defvar project-find-functions (list #'project-try-ede + #'project-try-vc #'project-ask-user) "Special hook to find the project containing a given directory. Each functions on this hook is called in turn with one @@ -99,6 +100,13 @@ an element of `project-search-path'." (vc-call-backend backend 'root dir))))) (and root (cons 'vc root)))) +(defun project-try-ede (dir) + "Use EDE to determine if DIR is a project directory." + (when (featurep 'ede) + (let* ((eproj (ede-current-project dir)) + (eroot (ede-project-root-directory eproj))) + (cons 'ede eroot)))) + (cl-defmethod project-roots ((project (head vc))) (list (cdr project)))