maak.el — Maak integration for Emacs
maak.el brings seamless integration for Maak: The infinitely extensible command runner, control plane and project automator à la Make (Guile Scheme - Lisp) into your Emacs workflow. Maak replaces archaic Makefiles with the elegance and power of GNU Guile Scheme. With maak.el , you can discover, inspect, and execute your Maak tasks directly from the comfort of Emacs, complete with rich minibuffer completions.
Most build tools invent their own limited domain-specific language. Maak embraces the powerful λ Lisp and the amazing Guile Scheme programming language. This also means your code is flexible, robust and reliable (+declarative) for at least the next 50 years.
Automatic Project Discovery: Automatically locates your root maak.scm file using dominating-file heuristics.
file using dominating-file heuristics. Smart Visibility Parsing: Respects your Maak configuration's #:export lists—only showing public tasks (or all, if no exports).
lists—only showing public tasks (or all, if no exports). Polished Completion UI: Implements aligned columns in your preferred completion framework (Vertico, Ivy, Helm, or native completing-read ) showcasing task signatures and docstrings.
) showcasing task signatures and docstrings. Interactive Argument Gathering: If a task expects parameters, maak.el will sequentially prompt you for them in the minibuffer before executing.
will sequentially prompt you for them in the minibuffer before executing. Native Compilation Buffers: Executes tasks asynchronously via Emacs's native compile system, keeping shell-escaping watertight and allowing you to jump straight to errors.
Using standard Emacs properties, your tasks are dynamically formatted in completion list. It will render beautifully aligned columns matching your theme's default font lock faces.
Thanks to Lisp being universal, and Scheme and Emacs Lisp being mutually parseable, maak.el parses maak.scm locally and cleanly, while being aware of S-exps, comments, etc.
... continue reading