Skip to content

Commit a18c375

Browse files
committed
Merge pull request #342 from kotarak/gradle-project3
Identify gradle project directories
2 parents d9e23e5 + 02ed5f8 commit a18c375

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

Diff for: clojure-mode.el

+17-10
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,16 @@ For example, \[ is allowed in :db/id[:db.part/user]."
144144
(and (listp value)
145145
(cl-every 'characterp value))))
146146

147+
(defcustom clojure-build-tool-files '("project.clj" "build.boot" "build.gradle")
148+
"A list of files, which are looked for in order to identify the
149+
project's root. Out-of-the box clojure-mode understands lein,
150+
boot and gradle."
151+
:type '(repeat string)
152+
:group 'clojure
153+
:safe (lambda (value)
154+
(and (listp value)
155+
(cl-every 'stringp value))))
156+
147157
(defvar clojure-mode-map
148158
(let ((map (make-sparse-keymap)))
149159
(define-key map (kbd "C-:") #'clojure-toggle-keyword-string)
@@ -1041,16 +1051,13 @@ nil."
10411051
10421052
Use `default-directory' if DIR-NAME is nil.
10431053
Return nil if not inside a project."
1044-
(let ((dir-name (or dir-name default-directory)))
1045-
(let ((lein-project-dir (locate-dominating-file dir-name "project.clj"))
1046-
(boot-project-dir (locate-dominating-file dir-name "build.boot")))
1047-
(when (or lein-project-dir boot-project-dir)
1048-
(file-truename
1049-
(cond ((not lein-project-dir) boot-project-dir)
1050-
((not boot-project-dir) lein-project-dir)
1051-
(t (if (file-in-directory-p lein-project-dir boot-project-dir)
1052-
lein-project-dir
1053-
boot-project-dir))))))))
1054+
(let* ((dir-name (or dir-name default-directory))
1055+
(choices (delq nil
1056+
(mapcar (lambda (fname)
1057+
(locate-dominating-file dir-name fname))
1058+
clojure-build-tool-files))))
1059+
(when (> (length choices) 0)
1060+
(car (sort choices #'file-in-directory-p)))))
10541061

10551062
(defun clojure-project-relative-path (path)
10561063
"Denormalize PATH by making it relative to the project root."

0 commit comments

Comments
 (0)