From: Amin Bandali Date: Sat, 22 Dec 2018 07:37:49 +0000 (-0500) Subject: Revert "[emacs] don’t display *compilation* on successful builds" X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/commitdiff_plain/c44ace121a47611a449c8755506f6bb5eeaf1336?ds=inline;hp=5492a3dccda6c6a91c7ac784d85d2d7f0e1501d5 Revert "[emacs] don’t display *compilation* on successful builds" This reverts commit 74a56f48afc4f55b7989cb6f1b3e84b0ce8e0878. --- diff --git a/init.org b/init.org index 5a3728c..b5f0618 100644 --- a/init.org +++ b/init.org @@ -646,35 +646,18 @@ Enable =winner-mode=. (winner-mode 1) #+end_src -*** Don’t display =*compilation*= on success - -From https://stackoverflow.com/a/17788551. - -#+begin_src emacs-lisp -(defun amin--compilation-finish-function (buffer outstr) - (unless (string-match "finished" outstr) - (switch-to-buffer-other-window buffer)) - t) - -(setq compilation-finish-functions #'amin--compilation-finish-function) - -(require 'cl) - -(defadvice compilation-start - (around inhibit-display - (command &optional mode name-function highlight-regexp)) - (if (not (string-match "^\\(find\\|grep\\)" command)) - (flet ((display-buffer) - (set-window-point) - (goto-char)) - (fset 'display-buffer 'ignore) - (fset 'goto-char 'ignore) - (fset 'set-window-point 'ignore) - (save-window-excursion - ad-do-it)) - ad-do-it)) - -(ad-activate 'compilation-start) +*** Close =*compilation*= on success + +#+begin_src emacs-lisp +(setq compilation-exit-message-function + (lambda (status code msg) + "Close the compilation window if successful." + ;; if M-x compile exits with 0 + (when (and (eq status 'exit) (zerop code)) + (bury-buffer) + (delete-window (get-buffer-window (get-buffer "*compilation*")))) + ;; return the result of compilation-exit-message-function + (cons msg code))) #+end_src *** Search for non-ASCII characters