close *compilation* buffer on successful compile
(defvar amin-show-async-tangle-time nil
"Show the time spent tangling the 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)
(defun amin/async-babel-tangle ()
"Tangle org file asynchronously."
(interactive)
(unless amin-show-async-tangle-results
`(lambda (result)
(if result
(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))
(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]]
#+end_src
*** [[https://magit.vc/][Magit]]