(winner-mode 1)
#+end_src
-*** COMMENT Close =*compilation*= on success
+*** Don’t display =*compilation*= on success
+
+Based on https://stackoverflow.com/a/17788551, with changes to use
+=cl-letf= instead of the now obsolete =flet=.
#+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)))
+(use-package compile
+ :config
+ (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-macs)
+
+ (defadvice compilation-start
+ (around inhibit-display
+ (command &optional mode name-function highlight-regexp))
+ (if (not (string-match "^\\(find\\|grep\\)" command))
+ (cl-letf (((symbol-function 'display-buffer) #'ignore))
+ (save-window-excursion ad-do-it))
+ ad-do-it))
+ (ad-activate 'compilation-start))
#+end_src
*** Search for non-ASCII characters
(let* ((file-tangle-start-time (current-time))
(file (buffer-file-name))
(file-nodir (file-name-nondirectory file))
- (async-quiet-switch "-q"))
+ ;; (async-quiet-switch "-q")
+ )
(async-start
`(lambda ()
(require 'org)
',file-tangle-start-time)))
""))
(when amin-async-tangle-post-compile
- (save-window-excursion
- (compile amin-async-tangle-post-compile))))
+ (compile amin-async-tangle-post-compile)))
(message "Tangling %s failed" ,file-nodir))))))))
(add-to-list
(defun amin|eshell-setup ()
(make-local-variable 'company-idle-delay)
- (setq company-idle-delay nil)
+ (defvar company-idle-delay nil)
(bind-keys :map eshell-mode-map
("C-d" . amin/eshell-quit-or-delete-char)
("C-S-l" . amin/eshell-clear)