📎 Improve clj-kondo hook impl for defservice

This commit is contained in:
Andrey Antukh 2022-07-13 14:29:47 +02:00
parent 333e1d32a2
commit b4ad907c73

View file

@ -53,24 +53,37 @@
[{:keys [:node]}] [{:keys [:node]}]
(let [[rnode rtype ?meta & other] (:children node) (let [[rnode rtype ?meta & other] (:children node)
rsym (gensym (name (:k rtype))) rsym (gensym (name (:k rtype)))
result (api/list-node
[(api/token-node (symbol "do")) [?docs other] (if (api/string-node? ?meta)
(api/list-node [?meta other]
[(api/token-node (symbol "declare")) [nil (cons ?meta other)])
(api/token-node rsym)])
(if (= :map (:tag ?meta)) [?meta other] (let [?meta (first other)]
(api/list-node (if (api/map-node? ?meta)
[(api/token-node (symbol "reset-meta!")) [?meta (rest other)]
(api/token-node rsym) [nil other]))
?meta])
(api/list-node nodes [(api/token-node (symbol "do"))
[(api/token-node (symbol "comment")) (api/list-node
(api/token-node rsym)])) [(api/token-node (symbol "declare"))
(api/list-node (api/token-node rsym)])
(into [(api/token-node (symbol "defmethod"))
(api/token-node rsym) (when ?docs
rtype] (api/list-node
(cons ?meta other)))])] [(api/token-node (symbol "comment")) ?docs]))
;; (prn "==============" rtype (into {} ?meta))
(when ?meta
(api/list-node
[(api/token-node (symbol "reset-meta!"))
(api/token-node rsym)
?meta]))
(api/list-node
(into [(api/token-node (symbol "defmethod"))
(api/token-node rsym)
rtype]
other))]
result (api/list-node (filterv some? nodes))]
;; (prn "=====>" rtype)
;; (prn (api/sexpr result)) ;; (prn (api/sexpr result))
{:node result})) {:node result}))