Skip to content

Commit df347c1

Browse files
author
Stuart Sierra
committed
c.t.n.file: extensions for Clojure & ClojureScript
1 parent 30c15ef commit df347c1

File tree

1 file changed

+21
-8
lines changed
  • src/main/clojure/clojure/tools/namespace

1 file changed

+21
-8
lines changed

src/main/clojure/clojure/tools/namespace/file.clj

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,37 @@
2525
(with-open [rdr (PushbackReader. (io/reader file))]
2626
(parse/read-ns-decl rdr read-opts))))
2727

28+
(defn file-with-extension?
29+
"Returns true if the java.io.File represents a file whose name ends
30+
with one of the Strings in extensions."
31+
{:added "0.3.0"}
32+
[^java.io.File file extensions]
33+
(and (.isFile file)
34+
(let [name (.getName file)]
35+
(some #(.endsWith name %) extensions))))
36+
37+
(def ^{:added "0.3.0"}
38+
clojure-extensions
39+
"File extensions for Clojure (JVM) files."
40+
(list ".clj" ".cljc"))
41+
42+
(def ^{:added "0.3.0"}
43+
clojurescript-extensions
44+
"File extensions for ClojureScript files."
45+
(list ".cljs" ".cljc"))
46+
2847
(defn clojure-file?
2948
"Returns true if the java.io.File represents a file which will be
3049
read by the Clojure (JVM) compiler."
3150
[^java.io.File file]
32-
(and (.isFile file)
33-
(or
34-
(.endsWith (.getName file) ".clj")
35-
(.endsWith (.getName file) ".cljc"))))
51+
(file-with-extension? file clojure-extensions))
3652

3753
(defn clojurescript-file?
3854
"Returns true if the java.io.File represents a file which will be
3955
read by the ClojureScript compiler."
4056
{:added "0.3.0"}
4157
[^java.io.File file]
42-
(and (.isFile file)
43-
(or
44-
(.endsWith (.getName file) ".cljs")
45-
(.endsWith (.getName file) ".cljc"))))
58+
(file-with-extension? file clojurescript-extensions))
4659

4760
;;; Dependency tracker
4861

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy