This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-04-03
Channels
- # beginners (7)
- # calva (25)
- # clerk (2)
- # clj-kondo (5)
- # clojure (42)
- # clojure-brasil (1)
- # clojure-europe (10)
- # clojure-nl (1)
- # clojure-norway (14)
- # clojure-uk (3)
- # conjure (6)
- # datahike (4)
- # datomic (3)
- # etaoin (4)
- # fulcro (6)
- # graalvm (7)
- # hoplon (9)
- # hyperfiddle (6)
- # introduce-yourself (2)
- # london-clojurians (1)
- # off-topic (22)
- # pedestal (5)
- # portal (12)
- # proletarian (1)
- # releases (1)
- # shadow-cljs (9)
- # vim (9)
I did an automatic snapshot release via github actions https://clojars.org/hoplon/versions/7.3.0-SNAPSHOT. It would be great if people tried it to see if everything is working as it should after the move from boot to deps.edn. I did some testing using the goog provider but I did not test the jquery one yet.
I would like some input on the cljs.hl
compiler, should we make an effort to keep it? Is anyone still using it?
My understanding is that it's not advised to use that anymore. We moved away from it a while back at Kevel.
Ok, I found https://github.com/hoplon/hoplon/issues/103 that explains the reasoning.
Does anyone have a clj-kondo config for Hoplon? It doesn't have to be perfect, I want to include it on Hoplon itself.
We have some things -- not perfect, but hopefully helpful as a starting point: .clj-kondo/config.edn
{:lint-as {castra.core/defrpc clojure.core/defn
hoplon.core/for-tpl clojure.core/for
javelin.core/cell-let clojure.core/let
javelin.core/cell-doseq clojure.core/doseq
javelin.core/defc clojure.core/def
javelin.core/defc= clojure.core/def
javelin.core/formulet clojure.core/let
javelin.core/with-let clojure.core/let}
:hooks {:analyze-call {hoplon.core/elem hooks/hoplon-core-elem
hoplon.core/defelem hooks/hoplon-core-defelem
hoplon.core/loop-tpl hooks/hoplon-core-loop-tpl}}}
.clj-kondo/hooks.clj
(ns hooks
(:require [clj-kondo.hooks-api :as api]))
(defn hoplon-core-defelem
[{:keys [node]}]
(let [[_defelem name & forms] (:children node)
[docstr & [args & body]] (if (api/string-node? (first forms))
forms
(concat [""] forms))]
{:node (api/list-node
(list*
(api/token-node 'defn)
name
docstr
(api/vector-node
[(api/token-node '&) args])
body))}))
(defn hoplon-core-elem
[{:keys [node]}]
(let [[_elem & [args & body]] (:children node)]
{:node (api/list-node
(list*
(api/token-node 'fn)
(api/vector-node
[(api/token-node '&) args])
body))}))
(defn hoplon-core-loop-tpl
[{:keys [node]}]
(let [[_loop-tpl _bindings-kw bind & body] (:children node)]
{:node (api/list-node
(list*
(api/token-node 'for)
bind
body))}))