diff --git a/doclet/src/clojure/play_clj_doclet/core.clj b/doclet/src/clojure/play_clj_doclet/core.clj index 0358d0a..76ac0fe 100644 --- a/doclet/src/clojure/play_clj_doclet/core.clj +++ b/doclet/src/clojure/play_clj_doclet/core.clj @@ -72,6 +72,18 @@ (map #(vector (first %) (parse-class-entry c (second %)))) (into {}))) +(defn remove-destructuring + [arglist] + (map #(or (:as %) %) arglist)) + +(defn arglists + [form] + (->> (or (some-> (some #(if (vector? %) %) form) list) + (map first (filter list? form))) + (map #(cons (second form) %)) + (map remove-destructuring) + vec)) + (defn process-group [{:keys [type raw docstring] :as group} doc-map] (let [form (read-string raw) @@ -84,6 +96,7 @@ (filter #(.startsWith (first %) (str n))) (sort-by first) vec) + :arglists (arglists form) :docstring (m/md-to-html-string docstring))))) (defn merge-groups diff --git a/doclet/src/clojure/play_clj_doclet/html.clj b/doclet/src/clojure/play_clj_doclet/html.clj index 196a4ac..73d7df2 100644 --- a/doclet/src/clojure/play_clj_doclet/html.clj +++ b/doclet/src/clojure/play_clj_doclet/html.clj @@ -32,9 +32,10 @@ [parsed-files] [:div {:class "content"} (for [{:keys [ns groups] :as pf} parsed-files] - (for [{:keys [name docstring java] :as g} groups] + (for [{:keys [name docstring arglists java] :as g} groups] (list [:div {:class "clj"} - [:div {:class "c-header"} name] + (for [args arglists] + [:div {:class "c-header"} (pr-str args)]) [:div {:class "c-doc"} docstring]] [:div {:class "java"} (for [[item-name items] java]