From 152daf82ef2bdfe8d7a863d4d87fec02cb5a7465 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 21 Apr 2021 17:54:29 -0500 Subject: [PATCH] Add macro `with-message' --- init.el | 12 +++++------- lisp/acdw.el | 9 +++++++++ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/init.el b/init.el index b8523e2..d2a8960 100644 --- a/init.el +++ b/init.el @@ -846,13 +846,11 @@ if ripgrep is installed, otherwise `consult-grep'." (defun acdw/eval-region-or-buffer () (interactive) (if (region-active-p) - (progn - (message "Evaluating %S -> %S..." (region-beginning) (region-end)) - (eval-region (region-beginning) (region-end)) - (message "Evaluating %S -> %S... Done." (region-beginning) (region-end))) - (message "%s" "Evaluating buffer...") - (eval-buffer) - (message "%s" "Evaluating buffer... Done."))) + (with-message (format "Evaluating %S -> %S" + (region-beginning) (region-end)) + (eval-region (region-beginning) (region-end))) + (with-message "Evaluating buffer" + (eval-buffer)))) (:with-map emacs-lisp-mode-map (:bind "C-c C-c" acdw/eval-region-or-buffer diff --git a/lisp/acdw.el b/lisp/acdw.el index 483bf60..1a699bb 100644 --- a/lisp/acdw.el +++ b/lisp/acdw.el @@ -70,6 +70,15 @@ each hook in HOOKS." file nil))) +(defmacro with-message (message &rest body) + "Execute BODY, messaging 'MESSAGE...' before and 'MESSAGE... Done.' after." + (declare (indent 1)) + ;; Wrap a progn inside a prog1 to return the return value of the body. + `(prog1 + (progn (message "%s..." ,message) + ,@body) + (message "%s... Done." ,message))) + (defun acdw/dir (&optional file make-directory) "Place Emacs files in one place.