File: cider-macrostep.el.html

Inline, in-place macro expansion with step-in/collapse, in the spirit of the macrostep package but implemented in-house and talking to nREPL.

This is an alternative to the separate-buffer macroexpansion commands in cider-macroexpansion; the two approaches are intentionally kept apart. cider-macrostep-expand replaces the macro form at point with its one-step expansion in place and enters a transient, read-only cider-macrostep-mode(var)/cider-macrostep-mode(fun). Each expansion is an overlay that remembers the exact text it replaced, so collapsing restores the original verbatim and nested expansions peel back in the right order.

Defined variables (14)

cider-macrostep--expandable-overlaysOverlays underlining the operators of further-expandable sub-forms.
cider-macrostep--gensym-overlaysOverlays coloring the gensyms in the current expansions.
cider-macrostep--gensym-regexpRegexp matching the gensyms produced by macro expansion.
cider-macrostep--overlaysStack of overlays for the current ‘cider-macrostep-mode’ session.
cider-macrostep--popupNon-nil when the current buffer is a dedicated macrostep popup.
cider-macrostep--saved-header-lineSaved ‘header-line-format’ from before ‘cider-macrostep-mode’.
cider-macrostep--saved-read-onlySaved value of ‘buffer-read-only’ from before ‘cider-macrostep-mode’.
cider-macrostep-bufferName of the dedicated buffer for out-of-place macro stepping.
cider-macrostep-color-gensymsWhether to colorize the gensyms introduced by a macro expansion.
cider-macrostep-gensym-facesFaces cycled through when coloring gensyms.
cider-macrostep-highlight-expandableWhether to highlight the operators of further-expandable sub-forms.
cider-macrostep-modeNon-nil if Cider-Macrostep mode is enabled.
cider-macrostep-mode-hookHook run after entering or leaving ‘cider-macrostep-mode’.
cider-macrostep-mode-mapKeymap for ‘cider-macrostep-mode’.

Defined functions (19)

cider-macrostep--classify(SYMBOLS)
cider-macrostep--clear-expandable-overlays()
cider-macrostep--clear-gensym-overlays()
cider-macrostep--collapse-overlay(OV)
cider-macrostep--expand(CODE EXPANDER)
cider-macrostep--expand-bounds()
cider-macrostep--header-line()
cider-macrostep--operator(BEG)
cider-macrostep--overlays-within(BEG END)
cider-macrostep--refresh-expandable()
cider-macrostep--refresh-gensyms()
cider-macrostep--refresh-overlays()
cider-macrostep-collapse()
cider-macrostep-expand()
cider-macrostep-expand-all()
cider-macrostep-expand-in-buffer()
cider-macrostep-mode(&optional ARG)
cider-macrostep-next-expandable()
cider-macrostep-previous-expandable()

Defined faces (9)

cider-macrostep-expandable-faceFace for the operator of a sub-form that can be expanded further.
cider-macrostep-expansion-faceFace for the background of an inline macro expansion.
cider-macrostep-gensym-1-faceFace 1 of the palette cycled through when coloring gensyms.
cider-macrostep-gensym-2-faceFace 2 of the palette cycled through when coloring gensyms.
cider-macrostep-gensym-3-faceFace 3 of the palette cycled through when coloring gensyms.
cider-macrostep-gensym-4-faceFace 4 of the palette cycled through when coloring gensyms.
cider-macrostep-gensym-5-faceFace 5 of the palette cycled through when coloring gensyms.
cider-macrostep-gensym-6-faceFace 6 of the palette cycled through when coloring gensyms.
cider-macrostep-gensym-7-faceFace 7 of the palette cycled through when coloring gensyms.