有没有办法在提供名称空间时获取Clojure文件的源代码?

时间:2017-08-07 20:28:13

标签: clojure

有些函数可以读取函数的源代码,例如:sourcesource-fn

在提供命名空间时,是否有任何方法或函数返回Clojure文件的源代码?

例如:(all-source 'my-ns)

返回如:

(ns my-ns
  (:require [kezban.core :refer :all]
            [leiningen.c.util :as util]))
(defn my-fn
  []
  )
...

1 个答案:

答案 0 :(得分:0)

我想我找到了一种方法(如果ns至少有一个var,它会起作用):

(defn source-clj
  [ns]
  (require ns)
  (some->> ns
           ns-publics
           vals
           first
           meta
           :file
           (.getResourceAsStream (RT/baseLoader))
           IOUtils/toString))
相关问题