Skip to content

Commit 94ad3d6

Browse files
committed
lint: bump kondo, update lib imports
1 parent 68b2993 commit 94ad3d6

File tree

3 files changed

+87
-4
lines changed

3 files changed

+87
-4
lines changed
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{:hooks
22
{:analyze-call
3-
{taoensso.encore/defalias taoensso.encore/defalias
4-
taoensso.encore/defn-cached taoensso.encore/defn-cached
5-
taoensso.encore/defonce taoensso.encore/defonce}}}
3+
{taoensso.encore/defalias taoensso.encore-hooks/defalias
4+
taoensso.encore/defaliases taoensso.encore-hooks/defaliases
5+
taoensso.encore/defn-cached taoensso.encore-hooks/defn-cached
6+
taoensso.encore/defonce taoensso.encore-hooks/defonce}}}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
(ns taoensso.encore-hooks
2+
"I don't personally use clj-kondo, so these hooks are
3+
kindly authored and maintained by contributors.
4+
PRs very welcome! - Peter Taoussanis"
5+
(:refer-clojure :exclude [defonce])
6+
(:require
7+
[clj-kondo.hooks-api :as hooks]))
8+
9+
(defn defalias
10+
[{:keys [node]}]
11+
(let [[alias src-raw _attrs body] (rest (:children node))
12+
src (or src-raw alias)
13+
sym (if src-raw (hooks/sexpr alias) (symbol (name (hooks/sexpr src))))]
14+
{:node
15+
(with-meta
16+
(hooks/list-node
17+
[(hooks/token-node 'def)
18+
(hooks/token-node sym)
19+
(if body
20+
(hooks/list-node
21+
;; use :body in the def to avoid unused import/private var warnings
22+
[(hooks/token-node 'or) body src])
23+
src)])
24+
(meta src))}))
25+
26+
(defn defaliases
27+
[{:keys [node]}]
28+
(let [alias-nodes (rest (:children node))]
29+
{:node
30+
(hooks/list-node
31+
(into
32+
[(hooks/token-node 'do)]
33+
(map
34+
(fn alias->defalias [alias-node]
35+
(cond
36+
(hooks/token-node? alias-node)
37+
(hooks/list-node
38+
[(hooks/token-node 'taoensso.encore/defalias)
39+
alias-node])
40+
41+
(hooks/map-node? alias-node)
42+
(let [{:keys [src alias attrs body]} (hooks/sexpr alias-node)
43+
;; workaround as can't seem to (get) using a token-node
44+
;; and there's no update-keys (yet) in sci apparently
45+
[& {:as node-as-map}] (:children alias-node)
46+
{:keys [attrs body]} (zipmap (map hooks/sexpr (keys node-as-map))
47+
(vals node-as-map))]
48+
(hooks/list-node
49+
[(hooks/token-node 'taoensso.encore/defalias)
50+
(or alias src) (hooks/token-node src) attrs body])))))
51+
alias-nodes))}))
52+
53+
(defn defn-cached
54+
[{:keys [node]}]
55+
(let [[sym _opts binding-vec & body] (rest (:children node))]
56+
{:node
57+
(hooks/list-node
58+
(list
59+
(hooks/token-node 'def)
60+
sym
61+
(hooks/list-node
62+
(list*
63+
(hooks/token-node 'fn)
64+
binding-vec
65+
body))))}))
66+
67+
(defn defonce
68+
[{:keys [node]}]
69+
;; args = [sym doc-string? attr-map? init-expr]
70+
(let [[sym & args] (rest (:children node))
71+
[doc-string args] (if (and (hooks/string-node? (first args)) (next args)) [(hooks/sexpr (first args)) (next args)] [nil args])
72+
[attr-map init-expr] (if (and (hooks/map-node? (first args)) (next args)) [(hooks/sexpr (first args)) (fnext args)] [nil (first args)])
73+
74+
attr-map (if doc-string (assoc attr-map :doc doc-string) attr-map)
75+
sym+meta (if attr-map (with-meta sym attr-map) sym)
76+
rewritten
77+
(hooks/list-node
78+
[(hooks/token-node 'clojure.core/defonce)
79+
sym+meta
80+
init-expr])]
81+
82+
{:node rewritten}))

deps.edn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
{:git/tag "v0.5.1" :git/sha "dfb30dd"}}
3333
:main-opts ["-m" "cognitect.test-runner"]}
3434
;; for consistent linting we use a specific version of clj-kondo through the jvm
35-
:clj-kondo {:extra-deps {clj-kondo/clj-kondo {:mvn/version "2025.06.05"}}
35+
:clj-kondo {:extra-deps {clj-kondo/clj-kondo {:mvn/version "2025.07.28"}}
3636
:override-deps {org.clojure/clojure {:mvn/version "1.12.2"}}
3737
:main-opts ["-m" "clj-kondo.main"]}
3838
:outdated {:extra-deps {com.github.liquidz/antq {:mvn/version "2.11.1276"}

0 commit comments

Comments
 (0)