Merge pull request #130 from OtherPeoplesPixels/master

Improve cljs file support and sort by namespace
This commit is contained in:
Gary Deer 2014-03-15 13:13:38 -05:00
commit 445dd05319
2 changed files with 27 additions and 14 deletions

View file

@ -74,14 +74,27 @@
[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 by
namespace."
[dir pred]
(->> (io/file dir)
(file-seq)
(filter #(re-find matching-re (.getCanonicalPath %)))
(map #(.getCanonicalPath %))
(sort)))
(filter (partial processable-file? pred))
(sort-by #(->> % read-file-ns-decl second))
(map #(.getCanonicalPath %))))
;; ## Project Info Parsing
;; Marginalia will parse info out of your project.clj to display in
@ -202,20 +215,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]

View file

@ -302,6 +302,8 @@
:background-color "#F5F5FF"}]
[:h1 {:font-size "20px"
:margin-top 0}]
[:h2 {:font-size "18px"}]
[:h3 {:font-size "16px"}]
[:a.anchor {:text-decoration "none"
:color "#252519"}]
[:a.anchor:hover {:color "#5050A6"}]