feature/eval: rewrite module

This commit is contained in:
Henrik Lissner 2017-03-04 18:28:51 -05:00
parent 05e1a15ba8
commit 74d50f6159
6 changed files with 140 additions and 136 deletions

View file

@ -1,13 +1,31 @@
;;; feature/repl/autoload/build.el
;;; feature/eval/autoload/build.el
;; TODO
(defvar-local +eval-last-builder nil
"The last builder run in the current buffer.")
(defun +eval--read-builder ()
(let ((builders (cl-remove-if-not
(lambda (plist)
(when-let (pred (plist-get (cdr plist) :when))
(eval pred)))
(cdr (assq major-mode +eval-builders)))))
(completing-read
"Build: "
(mapcar 'car builders)
nil t)))
;;;###autoload
(defun +eval/build ())
(defun +eval/build (&optional builder)
(interactive (list (+eval--read-builder)))
(unless builder
(error "No builder for this buffer"))
(let ((desc (assq builder (assq major-mode +eval-builders))))
(unless desc
(error "Builder not found in registered builders"))
(message "Running %s" builder)))
;;;###autoload
(defun +eval/rebuild ())
;;;###autoload
(defun +eval-get-builder ())
(defun +eval/rebuild (&optional builder)
(interactive (list +eval-last-builder))
(+eval/build +eval-last-builder))