feature/eval: improve compatibility with feature/popups

This makes quickrun, *doom eval* and *Pp Eval Output* buffers behave
better.

Eval output buffers should a) shrink themselves to the size of their
output (within reason), b) *not* grab focus, and c) be easy to close
from afar with C-g/Escape.

Gotchas:

1. Quickrun gets output asynchronously, so we shrink it on
   quickrun-after-run-hook, not in the popup rule.
2. *doom eval* and *Pp Eval Output* opens with its output ready, so the
   popup system may shrink those to fit.
3. *doom eval* and *Pp Eval Output* handle window selection themselves.
   Let them by setting the select window parameter to #'ignore.
This commit is contained in:
Henrik Lissner 2018-01-08 16:18:16 -05:00
parent b6bf0d7afd
commit d443aed25c
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 14 additions and 7 deletions

View file

@ -28,8 +28,11 @@ to a pop up buffer."
(prin1 result buf)
(pp-buffer)
(setq lines (count-lines (point-min) (point-max)))
(goto-char (point-min))
(if (> lines 1)
(pop-to-buffer buf t)
(message "%s" (buffer-substring (point-min) (point-max)))
(kill-buffer buf)))))
(cond ((> lines 1)
(save-selected-window
(pop-to-buffer buf)
(with-current-buffer buf
(goto-char (point-min)))))
(t
(message "%s" (buffer-substring (point-min) (point-max)))
(kill-buffer buf))))))