Fall back to defn-level help summaries if ns-level are not found.
This commit is contained in:
parent
93a2ffa85d
commit
0c47e54b9e
1 changed files with 13 additions and 8 deletions
|
@ -5,12 +5,24 @@
|
|||
[leiningen.core.main :as main]
|
||||
[bultitude.core :as b]))
|
||||
|
||||
(defn- resolve-task [task-name]
|
||||
(try (let [task-ns (doto (symbol (str "leiningen." task-name)) require)
|
||||
task (ns-resolve task-ns (symbol task-name))]
|
||||
[task-ns task])
|
||||
(catch java.io.FileNotFoundException e
|
||||
[nil nil])))
|
||||
|
||||
(defn- fallback-fn-docstring [task-sym]
|
||||
(-> task-sym name resolve-task second meta :doc))
|
||||
|
||||
(def docstrings
|
||||
(memoize
|
||||
(fn []
|
||||
(apply hash-map
|
||||
(mapcat
|
||||
(fn [form] [ (second form) (b/doc-from-ns-form form) ])
|
||||
(fn [form] [(second form)
|
||||
(or (b/doc-from-ns-form form)
|
||||
(fallback-fn-docstring (second form)))])
|
||||
(b/namespace-forms-on-classpath :prefix "leiningen"))))))
|
||||
|
||||
(def ^{:private true
|
||||
|
@ -55,13 +67,6 @@
|
|||
[(str "\nRun `lein help " (:name (meta task))
|
||||
" $SUBTASK` for subtask details.")])))))
|
||||
|
||||
(defn- resolve-task [task-name]
|
||||
(try (let [task-ns (doto (symbol (str "leiningen." task-name)) require)
|
||||
task (ns-resolve task-ns (symbol task-name))]
|
||||
[task-ns task])
|
||||
(catch java.io.FileNotFoundException e
|
||||
[nil nil])))
|
||||
|
||||
(defn- resolve-subtask [task-name subtask-name]
|
||||
(let [[_ task] (resolve-task task-name)]
|
||||
(some #(if (= (symbol subtask-name) (:name (meta %))) %)
|
||||
|
|
Loading…
Reference in a new issue