diff --git a/.clj-kondo/config.edn b/.clj-kondo/config.edn index 3ad91cc..66ca98c 100644 --- a/.clj-kondo/config.edn +++ b/.clj-kondo/config.edn @@ -1,17 +1,8 @@ {:linters {:unresolved-symbol {:exclude [goog.DEBUG - (spade.core/defattrs [at-media]) - (spade.core/defclass [at-media]) - (spade.core/defglobal [at-media]) - (spade.core/defkeyframes [at-media]) - - (com.rpl.specter/recursive-path) - ]}} + (com.rpl.specter/recursive-path)]}} :lint-as {applied-science.js-interop/defn clojure.core/defn applied-science.js-interop/let clojure.core/let applied-science.js-interop/fn clojure.core/fn - reagent.core/with-let clojure.core/let - spade.core/defattrs clojure.core/defn - spade.core/defclass clojure.core/defn - spade.core/defglobal clojure.core/def - spade.core/defkeyframes clojure.core/defn}} + reagent.core/with-let clojure.core/let} + :config-paths ["../resources/clj-kondo.exports/net.dhleong/spade"]} diff --git a/dev/spade/demo.cljs b/dev/spade/demo.cljs index 2586e7e..d1c4e98 100644 --- a/dev/spade/demo.cljs +++ b/dev/spade/demo.cljs @@ -74,9 +74,7 @@ [:div (composed-attrs) [:div {:class (colorized "red")}] [:div {:class (colorized "blue")}] - [:div {:class (colorized "green")}]] - - ]) + [:div {:class (colorized "green")}]]]) (defn view [] [:div diff --git a/resources/clj-kondo.exports/net.dhleong/spade/config.edn b/resources/clj-kondo.exports/net.dhleong/spade/config.edn new file mode 100644 index 0000000..bebddbb --- /dev/null +++ b/resources/clj-kondo.exports/net.dhleong/spade/config.edn @@ -0,0 +1,14 @@ +{:linters {:unresolved-symbol {:exclude [(spade.core/defattrs [at-media]) + (spade.core/defclass [at-media]) + (spade.core/defglobal [at-media]) + (spade.core/defkeyframes [at-media])]} + + ; defglobal needs a name to be bound to, but is unlikely to + ; actually be referenced anywhere (because it's, y'know, global). + ; So we automatically ignore its public vars by default + :clojure-lsp/unused-public-var {:exclude-when-defined-by #{spade.core/defglobal}}} + :hooks {:expand-macro {spade.core/defglobal hooks.defglobal/as-macro}} + :lint-as {spade.core/defattrs clojure.core/defn + spade.core/defclass clojure.core/defn + spade.core/defglobal clojure.core/def + spade.core/defkeyframes clojure.core/defn}} diff --git a/resources/clj-kondo.exports/net.dhleong/spade/hooks/defglobal.clj b/resources/clj-kondo.exports/net.dhleong/spade/hooks/defglobal.clj new file mode 100644 index 0000000..bfccbe6 --- /dev/null +++ b/resources/clj-kondo.exports/net.dhleong/spade/hooks/defglobal.clj @@ -0,0 +1,5 @@ +(ns hooks.defglobal) + +#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]} +(defmacro as-macro [the-name & body] + `(def ~the-name ~@body))