macrostep-geiser

Macrostep for `geiser'


Keywords
languages, scheme
License
GPL-3.0

Documentation

About

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.

Set-up

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))

Usage

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.