ansi-{format,message}! => {format,message}! (to be generalized)

This commit is contained in:
Henrik Lissner 2017-04-15 01:29:24 -04:00
parent a71ca4d340
commit e48c6c5381
4 changed files with 33 additions and 33 deletions

View file

@ -36,7 +36,7 @@
"List of styles.") "List of styles.")
;;;###autoload ;;;###autoload
(defmacro ansi-format! (message &rest args) (defmacro format! (message &rest args)
"An alternative to `format' that strips out ANSI codes if used in an "An alternative to `format' that strips out ANSI codes if used in an
interactive session." interactive session."
`(cl-flet* `(cl-flet*
@ -50,10 +50,10 @@ interactive session."
(format ,message ,@args))) (format ,message ,@args)))
;;;###autoload ;;;###autoload
(defmacro ansi-message! (message &rest args) (defmacro message! (message &rest args)
"An alternative to `message' that strips out ANSI codes if used in an "An alternative to `message' that strips out ANSI codes if used in an
interactive session." interactive session."
`(message (ansi-format! ,message ,@args))) `(message (format! ,message ,@args)))
;;;###autoload ;;;###autoload
(defun doom-ansi-apply (code format &rest args) (defun doom-ansi-apply (code format &rest args)

View file

@ -207,7 +207,7 @@ appropriate."
(interactive) (interactive)
(let ((packages (doom-get-missing-packages))) (let ((packages (doom-get-missing-packages)))
(cond ((not packages) (cond ((not packages)
(ansi-message! (green "No packages to install!"))) (message! (green "No packages to install!")))
((not (or (getenv "YES") ((not (or (getenv "YES")
(y-or-n-p (y-or-n-p
@ -221,12 +221,12 @@ appropriate."
"ELPA"))) "ELPA")))
(sort (cl-copy-list packages) 'doom--sort-alpha) (sort (cl-copy-list packages) 'doom--sort-alpha)
"\n"))))) "\n")))))
(ansi-message! (yellow "Aborted!"))) (message! (yellow "Aborted!")))
(t (t
(dolist (pkg packages) (dolist (pkg packages)
(condition-case ex (condition-case ex
(ansi-message! (message!
(cond ((package-installed-p (car pkg)) (cond ((package-installed-p (car pkg))
(dark (white "Skipped %%%%s (already installed)"))) (dark (white "Skipped %%%%s (already installed)")))
((doom-install-package (car pkg) (cdr pkg)) ((doom-install-package (car pkg) (cdr pkg))
@ -240,9 +240,9 @@ appropriate."
('quelpa "QUELPA") ('quelpa "QUELPA")
('elpa "ELPA"))) ('elpa "ELPA")))
('error ('error
(ansi-message! (red "Error (%s): %s" (car pkg) ex))))) (message! (red "Error (%s): %s" (car pkg) ex)))))
(ansi-message! (bold (green "\n---\nFinished!"))) (message! (bold (green "\n---\nFinished!")))
(doom/reload))))) (doom/reload)))))
;;;###autoload ;;;###autoload
@ -251,7 +251,7 @@ appropriate."
(interactive) (interactive)
(let ((packages (sort (doom-get-outdated-packages) 'doom--sort-alpha))) (let ((packages (sort (doom-get-outdated-packages) 'doom--sort-alpha)))
(cond ((not packages) (cond ((not packages)
(ansi-message! (green "Everything is up-to-date"))) (message! (green "Everything is up-to-date")))
((not (or (getenv "YES") ((not (or (getenv "YES")
(y-or-n-p (y-or-n-p
@ -269,21 +269,21 @@ appropriate."
(package-version-join (cl-caddr pkg)))) (package-version-join (cl-caddr pkg))))
packages packages
"\n")))))) "\n"))))))
(ansi-message! (yellow "Aborted!"))) (message! (yellow "Aborted!")))
(t (t
(dolist (pkg packages) (dolist (pkg packages)
(condition-case ex (condition-case ex
(ansi-message! (message!
(let ((result (doom-update-package (car pkg)))) (let ((result (doom-update-package (car pkg))))
(color (if result 'green 'red) (color (if result 'green 'red)
"%s %s" "%s %s"
(if result "Updated" "Failed to update") (if result "Updated" "Failed to update")
(car pkg)))) (car pkg))))
('error ('error
(ansi-message! (bold (red "Error installing %s: %s" (car pkg) ex)))))) (message! (bold (red "Error installing %s: %s" (car pkg) ex))))))
(ansi-message! (bold (green "\n---\nFinished!"))) (message! (bold (green "\n---\nFinished!")))
(doom/reload))))) (doom/reload)))))
;;;###autoload ;;;###autoload
@ -292,7 +292,7 @@ appropriate."
(interactive) (interactive)
(let ((packages (doom-get-orphaned-packages))) (let ((packages (doom-get-orphaned-packages)))
(cond ((not packages) (cond ((not packages)
(ansi-message! (green "No unused packages to remove"))) (message! (green "No unused packages to remove")))
((not (or (getenv "YES") ((not (or (getenv "YES")
(y-or-n-p (y-or-n-p
@ -301,7 +301,7 @@ appropriate."
(mapconcat (lambda (sym) (format "+ %s" (symbol-name sym))) (mapconcat (lambda (sym) (format "+ %s" (symbol-name sym)))
(sort (cl-copy-list packages) 'string-lessp) (sort (cl-copy-list packages) 'string-lessp)
"\n"))))) "\n")))))
(ansi-message! (yellow "Aborted!"))) (message! (yellow "Aborted!")))
(t (t
(dolist (pkg packages) (dolist (pkg packages)
@ -312,9 +312,9 @@ appropriate."
"Failed to delete") "Failed to delete")
pkg) pkg)
('error ('error
(ansi-message! (red "Error deleting %s: %s" pkg ex))))) (message! (red "Error deleting %s: %s" pkg ex)))))
(ansi-message! (bold (green "\n---\nFinished!"))) (message! (bold (green "\n---\nFinished!")))
(doom/reload))))) (doom/reload)))))
;;;###autoload ;;;###autoload

View file

@ -477,13 +477,13 @@ If ONLY-RECOMPILE-P is non-nil, only recompile out-of-date files."
(short-name (file-relative-name file doom-emacs-dir))) (short-name (file-relative-name file doom-emacs-dir)))
(cl-incf (cl-incf
(cond ((eq result 'no-byte-compile) (cond ((eq result 'no-byte-compile)
(ansi-message! (dark (white "Ignored %s" short-name))) (message! (dark (white "Ignored %s" short-name)))
total-nocomp) total-nocomp)
((null result) ((null result)
(ansi-message! (red "Failed to compile %s" short-name)) (message! (red "Failed to compile %s" short-name))
total-fail) total-fail)
(t (t
(ansi-message! (green "Compiled %s" short-name)) (message! (green "Compiled %s" short-name))
total-success)))))) total-success))))))
(dolist (path targets (reverse el-files)) (dolist (path targets (reverse el-files))
(let ((path (expand-file-name path doom-emacs-dir))) (let ((path (expand-file-name path doom-emacs-dir)))
@ -493,7 +493,7 @@ If ONLY-RECOMPILE-P is non-nil, only recompile out-of-date files."
(push path el-files)) (push path el-files))
(t (t
(error "Invalid path: %s" path)))))) (error "Invalid path: %s" path))))))
(ansi-message! (message!
(bold (bold
(color (if (zerop total-fail) 'green 'red) (color (if (zerop total-fail) 'green 'red)
"\n---\n%s %s file(s) %s" "\n---\n%s %s file(s) %s"

View file

@ -3,39 +3,39 @@
(def-test-group! core/autoload/message (def-test-group! core/autoload/message
(ert-deftest ansi-format () (ert-deftest ansi-format ()
(let ((noninteractive t)) (let ((noninteractive t))
(should (equal (ansi-format! "Hello %s" "World") (should (equal (format! "Hello %s" "World")
"Hello World")) "Hello World"))
(should (equal (ansi-format! (red "Hello %s" "World")) (should (equal (format! (red "Hello %s" "World"))
"Hello World")) "Hello World"))
(should (equal (ansi-format! (green "Hello %s" "World")) (should (equal (format! (green "Hello %s" "World"))
(format "\e[%dm%s\e[0m" (format "\e[%dm%s\e[0m"
(cdr (assq 'green doom-ansi-fg)) (cdr (assq 'green doom-ansi-fg))
"Hello World"))) "Hello World")))
(should (equal (ansi-format! (on-red "Hello %s" "World")) (should (equal (format! (on-red "Hello %s" "World"))
(format "\e[%dm%s\e[0m" (format "\e[%dm%s\e[0m"
(cdr (assq 'on-red doom-ansi-bg)) (cdr (assq 'on-red doom-ansi-bg))
"Hello World"))) "Hello World")))
(should (equal (ansi-format! (bold "Hello %s" "World")) (should (equal (format! (bold "Hello %s" "World"))
(format "\e[%dm%s\e[0m" (format "\e[%dm%s\e[0m"
(cdr (assq 'bold doom-ansi-fx)) (cdr (assq 'bold doom-ansi-fx))
"Hello World"))))) "Hello World")))))
(ert-deftest ansi-format-nested () (ert-deftest ansi-format-nested ()
(let ((noninteractive t)) (let ((noninteractive t))
(should (equal (ansi-format! (bold (red "Hello %s" "World"))) (should (equal (format! (bold (red "Hello %s" "World")))
(format "\e[%dm%s\e[0m" 1 (format "\e[%dm%s\e[0m" 1
(format "\e[%dm%s\e[0m" 31 "Hello World")))) (format "\e[%dm%s\e[0m" 31 "Hello World"))))
(should (equal (ansi-format! (on-red (bold "Hello %s" "World"))) (should (equal (format! (on-red (bold "Hello %s" "World")))
(format "\e[%dm%s\e[0m" 41 (format "\e[%dm%s\e[0m" 41
(format "\e[%dm%s\e[0m" 1 "Hello World")))) (format "\e[%dm%s\e[0m" 1 "Hello World"))))
(should (equal (ansi-format! (dark (white "Hello %s" "World"))) (should (equal (format! (dark (white "Hello %s" "World")))
(format "\e[%dm%s\e[0m" 2 (format "\e[%dm%s\e[0m" 2
(format "\e[%dm%s\e[0m" 37 "Hello World")))))) (format "\e[%dm%s\e[0m" 37 "Hello World"))))))
(ert-deftest ansi-format-apply () (ert-deftest ansi-format-apply ()
(let ((noninteractive t)) (let ((noninteractive t))
(should (equal (ansi-format! (color 'red "Hello %s" "World")) (should (equal (format! (color 'red "Hello %s" "World"))
(ansi-format! (red "Hello %s" "World")))) (format! (red "Hello %s" "World"))))
(should (equal (ansi-format! (color (if nil 'red 'blue) "Hello %s" "World")) (should (equal (format! (color (if nil 'red 'blue) "Hello %s" "World"))
(ansi-format! (blue "Hello %s" "World"))))))) (format! (blue "Hello %s" "World")))))))