【问题标题】:Is there a way to get Clojure file's source when a namespace provided?提供命名空间时,有没有办法获取 Clojure 文件的源代码?
【发布时间】:2017-08-07 20:28:12
【问题描述】:

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

在提供命名空间时,有什么方法或函数可以返回 Clojure 文件的源代码吗?

如:(all-source 'my-ns)

返回如:

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

【问题讨论】:

    标签: clojure


    【解决方案1】:

    我想我找到了一种方法(如果 ns 至少有一个 var,它就可以工作):

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

    【讨论】:

      猜你喜欢
      • 2022-12-29
      • 2021-02-22
      • 2021-10-22
      • 2011-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多