This namespace started as a fork of cider-nrepl instrument middleware but departed a lot from it to make it work for clojurescript and to make it able to trace more stuff.
Provides utilities to recursively instrument forms for all our traces.
If you are interested in understanding this, there is a nice flow diagram here : /docs/form_instrumentation.pdf
This namespace started as a fork of cider-nrepl instrument middleware but departed a lot from it to make it work for clojurescript and to make it able to trace more stuff. Provides utilities to recursively instrument forms for all our traces. If you are interested in understanding this, there is a nice flow diagram here : /docs/form_instrumentation.pdf
(compiler-from-env env)
(expanded-def-form? form)
(expanded-defn-form? form)
(expanded-form-type form ctx)
(instrument {:keys [env] :as config} form)
Recursively instrument a form for tracing.
Recursively instrument a form for tracing.
(listy? x)
Returns true if x is any kind of list except a vector.
Returns true if x is any kind of list except a vector.
(macroexpand-all macroexpand-1-fn form & [original-key])
Like clojure.walk/macroexpand-all
, but preserves metadata.
Also store the original form (unexpanded and stripped of
metadata) in the metadata of the expanded form under original-key.
Like `clojure.walk/macroexpand-all`, but preserves metadata. Also store the original form (unexpanded and stripped of metadata) in the metadata of the expanded form under original-key.
(parse-defn-expansion defn-expanded-form)
Set of special-forms that we don't want to wrap with instrumentation.
These are either forms that don't do anything interesting (like
quote
) or forms that just can't be wrapped (like catch
and
finally
).
Set of special-forms that we don't want to wrap with instrumentation. These are either forms that don't do anything interesting (like `quote`) or forms that just can't be wrapped (like `catch` and `finally`).
(special-symbol+? symb)
Like clojure.core/special-symbol? but includes cljs specials
Like clojure.core/special-symbol? but includes cljs specials
(walk-unquoted inner outer form)
Traverses form, an arbitrary data structure. inner and outer are functions. Applies inner to each element of form, building up a data structure of the same type, then applies outer to the result. Recognizes all Clojure data structures. Consumes seqs as with doall.
Unlike clojure.walk/walk, does not traverse into quoted forms.
Traverses form, an arbitrary data structure. inner and outer are functions. Applies inner to each element of form, building up a data structure of the same type, then applies outer to the result. Recognizes all Clojure data structures. Consumes seqs as with doall. Unlike clojure.walk/walk, does not traverse into quoted forms.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close