doomemacs/modules/feature/eval/autoload/build.el

32 lines
940 B
EmacsLisp
Raw Normal View History

2017-03-04 18:28:51 -05:00
;;; feature/eval/autoload/build.el
2017-02-13 16:57:08 -05:00
2017-03-04 18:28:51 -05:00
(defvar-local +eval-last-builder nil
"The last builder run in the current buffer.")
2017-02-13 16:57:08 -05:00
2017-03-04 18:28:51 -05:00
(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)))
2017-02-13 16:57:08 -05:00
;;;###autoload
2017-03-04 18:28:51 -05:00
(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)))
2017-02-13 16:57:08 -05:00
;;;###autoload
2017-03-04 18:28:51 -05:00
(defun +eval/rebuild (&optional builder)
(interactive (list +eval-last-builder))
(+eval/build +eval-last-builder))
2017-02-13 16:57:08 -05:00