Recursively dispatch form to handle definitions wrapped into some other form.
This commit is contained in:
parent
cfc5b0ff86
commit
c3009ea6c4
1 changed files with 15 additions and 1 deletions
|
@ -153,11 +153,25 @@
|
||||||
[form raw nspace-sym]
|
[form raw nspace-sym]
|
||||||
[nil raw nspace-sym])
|
[nil raw nspace-sym])
|
||||||
|
|
||||||
|
(defn dispatch-inner-form
|
||||||
|
[form raw nspace-sym]
|
||||||
|
(conj
|
||||||
|
(reduce (fn [[adoc araw] inner-form]
|
||||||
|
(if (seq? inner-form)
|
||||||
|
(let [[d r] (dispatch-form inner-form
|
||||||
|
araw
|
||||||
|
nspace-sym)]
|
||||||
|
[(str adoc d) r])
|
||||||
|
[adoc araw]))
|
||||||
|
[nil raw]
|
||||||
|
form)
|
||||||
|
nspace-sym))
|
||||||
|
|
||||||
(defmethod dispatch-form :default
|
(defmethod dispatch-form :default
|
||||||
[form raw nspace-sym]
|
[form raw nspace-sym]
|
||||||
(if (re-find #"^def" (-> form first name))
|
(if (re-find #"^def" (-> form first name))
|
||||||
(extract-common-docstring form raw nspace-sym)
|
(extract-common-docstring form raw nspace-sym)
|
||||||
[nil raw nspace-sym]))
|
(dispatch-inner-form form raw nspace-sym)))
|
||||||
|
|
||||||
(defn extract-docstring [m raw nspace-sym]
|
(defn extract-docstring [m raw nspace-sym]
|
||||||
(let [raw (join "\n" (subvec raw (-> m :start dec) (:end m)))
|
(let [raw (join "\n" (subvec raw (-> m :start dec) (:end m)))
|
||||||
|
|
Loading…
Reference in a new issue