src/middleware/macroexpand.lisp @ c8a2b5ade9f8
Fix quickutil fuckery
author |
Steve Losh <steve@stevelosh.com> |
date |
Sun, 20 Nov 2016 18:02:44 +0000 |
parents |
919ebd924aac |
children |
(none) |
(in-package :nrepl)
(defun pretty-string (form)
"Return a prettified string version of `form`, indented nicely."
(with-output-to-string (*standard-output*)
(let ((*print-pretty* t)
(*print-escape* t))
(write form))))
(define-middleware wrap-macroexpand "macroexpand" message
;; TODO: handle mangled input
(let* ((*package* (parse-in-package (fset:lookup message "in-package")))
(form (read-from-string (fset:lookup message "form"))))
(respond message
(make-map
"status" '("done")
"macroexpand" (pretty-string (macroexpand form))
"macroexpand-1" (pretty-string (macroexpand-1 form))))))