Improved handling of clojurescrpt files...
* Find all processable files in one pass to preserve order. * Added .cljx to the set of processable file extensions. * Use set as predicate instead of regex. Maybe down the road this set could be configured by users in their project.clj files?
This commit is contained in:
parent
56a9e6a004
commit
275b470eec
1 changed files with 22 additions and 12 deletions
|
@ -74,12 +74,24 @@
|
|||
[path]
|
||||
(.isDirectory (java.io.File. path)))
|
||||
|
||||
(defn find-file-extension
|
||||
"Returns a string containing the files extension."
|
||||
[^java.io.File file]
|
||||
(second (re-find #"\.([^.]+)$" (.getName file))))
|
||||
|
||||
(defn processable-file?
|
||||
"Predicate. Returns true for \"normal\" files with a file extension which
|
||||
passes the provided predicate."
|
||||
[pred ^java.io.File file]
|
||||
(when (.isFile file)
|
||||
(-> file find-file-extension pred)))
|
||||
|
||||
(defn find-processable-file-paths
|
||||
"Returns a seq of clojure file paths (strings) in alphabetical order."
|
||||
[dir matching-re]
|
||||
"Returns a seq of processable file paths (strings) in alphabetical order."
|
||||
[dir pred]
|
||||
(->> (io/file dir)
|
||||
(file-seq)
|
||||
(filter #(re-find matching-re (.getCanonicalPath %)))
|
||||
(filter (partial processable-file? pred))
|
||||
(map #(.getCanonicalPath %))
|
||||
(sort)))
|
||||
|
||||
|
@ -202,20 +214,18 @@
|
|||
;; These functions support Marginalia's use by client software or command-line
|
||||
;; users.
|
||||
|
||||
(def ^:private file-extensions #{"clj" "cljs" "cljx"})
|
||||
|
||||
(defn format-sources
|
||||
"Given a collection of filepaths, returns a lazy sequence of filepaths to
|
||||
all .clj files on those paths: directory paths will be searched recursively
|
||||
for .clj files."
|
||||
"Given a collection of filepaths, returns a lazy sequence of filepaths to all
|
||||
.clj, .cljs, and .cljx files on those paths: directory paths will be searched
|
||||
recursively for files."
|
||||
[sources]
|
||||
(if (nil? sources)
|
||||
(concat
|
||||
(find-processable-file-paths "./src" #"\.clj$")
|
||||
(find-processable-file-paths "./src" #"\.cljs$"))
|
||||
(find-processable-file-paths "./src" file-extensions)
|
||||
(->> sources
|
||||
(mapcat #(if (dir? %)
|
||||
(concat
|
||||
(find-processable-file-paths % #"\.clj$")
|
||||
(find-processable-file-paths % #"\.cljs$"))
|
||||
(find-processable-file-paths % file-extensions)
|
||||
[(.getCanonicalPath (io/file %))])))))
|
||||
|
||||
(defn split-deps [deps]
|
||||
|
|
Loading…
Reference in a new issue