From: Amin Bandali Date: Thu, 30 Aug 2018 21:08:19 +0000 (-0400) Subject: [emacs] call compile after async tangle, auto-close *compilation* X-Git-Url: https://git.shemshak.org/~bandali/configs/commitdiff_plain/b07c1cc4dfe36f215eac01e5c69e32cdc7607015?hp=eb689aa4385a8a98336b9a8259a55ca4e294d68e [emacs] call compile after async tangle, auto-close *compilation* close *compilation* buffer on successful compile --- diff --git a/init.org b/init.org index 81c652e..8bce20c 100644 --- a/init.org +++ b/init.org @@ -679,6 +679,9 @@ file. (defvar amin-show-async-tangle-time nil "Show the time spent tangling the file.") + (defvar amin-async-tangle-post-compile "make ti" + "If non-nil, pass to `compile' after successful tangle.") + (defun amin/async-babel-tangle () "Tangle org file asynchronously." (interactive) @@ -693,18 +696,31 @@ file. (unless amin-show-async-tangle-results `(lambda (result) (if result - (message "Tangled %s%s" - ,file-nodir - (if amin-show-async-tangle-time - (format " (%.3fs)" - (float-time (time-subtract (current-time) - ',file-tangle-start-time))) - "")) + (progn + (message "Tangled %s%s" + ,file-nodir + (if amin-show-async-tangle-time + (format " (%.3fs)" + (float-time (time-subtract (current-time) + ',file-tangle-start-time))) + "")) + (when amin-async-tangle-post-compile + (compile amin-async-tangle-post-compile))) (message "Tangling %s failed" ,file-nodir)))))))) (add-to-list 'safe-local-variable-values '(eval add-hook 'after-save-hook #'amin/async-babel-tangle 'append 'local)) + +(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 *** [[https://magit.vc/][Magit]]