This plug-in implements a macrostep back-end powered by geiser.
geiser
does have built-in macro-expansion facilities, namely
geiser-expand-*
. However, I find macrostep
's in-place expansions to be more
convenient than pop-up buffers.
The main entry-point to this package is macrostep-geiser-setup
. It sets-up the
various macrostep
variables needed to provide geiser
-backed macro expansion.
It can either be called interactively, or added to geiser-mode-hook
:
(use-package macrostep-geiser
:after geiser-mode
:config (add-hook 'geiser-mode-hook #'macrostep-geiser-setup))
(use-package macrostep-geiser
:after geiser-repl
:config (add-hook 'geiser-repl-mode-hook #'macrostep-geiser-setup))
Alternatively:
(eval-after-load 'geiser-mode '(add-hook 'geiser-mode-hook #'macrostep-geiser-setup))
(eval-after-load 'geiser-repl '(add-hook 'geiser-repl-mode-hook #'macrostep-geiser-setup))
Additionally, this package can also integrate with cider-mode
:
(use-package macrostep-geiser
:after cider-mode
:config (add-hook 'cider-mode-hook #'macrostep-geiser-setup))
Alternatively:
(eval-after-load 'cider-mode '(add-hook 'cider-mode-hook #'macrostep-geiser-setup))
If macrostep-geiser
is properly set up, macrostep
will expand macros using
the REPL. macrostep-geiser-expand-all
expands the macro at point recursively.
macrostep-geiser-expand-all-mode
makes macrostep
itself also recursively
expand macros.