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.