Liking cljdoc? Tell your friends :D

cider.nrepl.middleware.util.instrument

Generic instrumentation for clojure code

Generic instrumentation for clojure code
raw docstring

bpcljmacro

(bp value coor & _)
source

bp-trackerclj

source

breakpoint-testerclj

(breakpoint-tester form)
source

coord<clj

(coord< x y)

Return true if coordinate x comes before y. Here, "comes before" means that a sexp at coord x is evaluated before a sexp at coord y (assuming a trivial code-flow).

Return true if coordinate x comes before y.
Here, "comes before" means that a sexp at coord x is evaluated
before a sexp at coord y (assuming a trivial code-flow).
sourceraw docstring

definstrumentercljmacro

(definstrumenter & args)

Defines a private function for instrumenting forms. This is like defn-, except the metadata of the return value is merged with that of the first input argument.

Defines a private function for instrumenting forms.
This is like `defn-`, except the metadata of the return value is
merged with that of the first input argument.
sourceraw docstring

dont-break-formsclj

Set of special-forms that we don't wrap breakpoints around. 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 wrap breakpoints around.
These are either forms that don't do anything interesting (like
`quote`) or forms that just can't be wrapped (like `catch` and
`finally`).
sourceraw docstring

instrument-tagged-codeclj

(instrument-tagged-code form)

Return form instrumented with breakpoints. It is expected that something in form will contain a ::breakfunction metadata, whose value should be a var holding a macro. This macro should take three arguments, the form being evaluated, a map containing coordinates vector (see below), and the original form (before macroexpansion).

This function walks through the code attaching to objects the ::extras metadata, which is a map currently containing a :coor vector. The :coor specifies its position inside the top-level form. As an example, a coordinate vector of [3 2 0] means:

  • enter this sexp and move forward three times,
  • enter this sexp and move forward twice,
  • enter this sexp.

After that, it fully macroexpands the code, walks through it again, and wraps in a ::breakfunction any form that contains the previously attached metadata.

Return `form` instrumented with breakpoints.
It is expected that something in `form` will contain a
::breakfunction metadata, whose value should be a var holding a macro. This
macro should take three arguments, the form being evaluated, a map containing
coordinates vector (see below), and the original form (before macroexpansion).

This function walks through the code attaching to objects the ::extras
metadata, which is a map currently containing a :coor vector. The :coor
specifies its position inside the top-level form. As an example, a coordinate
vector of [3 2 0] means:
  - enter this sexp and move forward three times,
  - enter this sexp and move forward twice,
  - enter this sexp.

After that, it fully macroexpands the code, walks through it again, and wraps
in a ::breakfunction any form that contains the previously attached metadata.
sourceraw docstring

list-instrumented-defsclj

(list-instrumented-defs ns)
source

(print-form form & [expand? meta?])

Pretty print form. If expand? is true, macroexpand the form. If meta? is true, also print meta. This function is intended for inspection of instrumented code.

Pretty print form.
If expand? is true, macroexpand the form. If meta? is true, also print
meta. This function is intended for inspection of instrumented code.
sourceraw docstring

tag-formclj

(tag-form form breakfunction)
(tag-form form breakfunction do-break?)

Tag form to be instrumented with breakfunction. This sets the ::breakfunction metadata of form, which can then be used by instrument-tagged-code. See this function for the meaning of breakfunction. When do-break? is true it tells the instrumenter to wrap the form with a breakpoint regardless of other heuristics.

Tag form to be instrumented with breakfunction.
This sets the ::breakfunction metadata of form, which can then be
used by `instrument-tagged-code`. See this function for the meaning
of breakfunction.
When `do-break?` is true it tells the instrumenter to wrap the form
with a breakpoint regardless of other heuristics.
sourceraw docstring

tag-form-recursivelyclj

(tag-form-recursively form breakfunction)

Like tag-form but also tag all forms inside the given form.

Like `tag-form` but also tag all forms inside the given form.
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close