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

@ -66,8 +66,12 @@ function that creates and returns the REPL buffer."
(unless (boundp 'display-line-numbers)
(add-hook 'quickrun--mode-hook #'nlinum-mode))
:config
(set! :popup "^\\*\\(?:doom eval\\|Pp Eval Output\\|quickrun\\)"
'((window-height . 0.2)) '((transient . 0)))
(setq quickrun-focus-p nil)
(set! :popup "^\\*quickrun"
'((size . 0.3)) '((transient . 0)))
(set! :popup "^\\*\\(?:\\(?:Pp E\\|doom e\\)val\\)"
'((size . +popup-shrink-to-fit)) '((transient . 0) (select . ignore)))
(defun +eval*quickrun-auto-close (&rest _)
"Allows us to silently re-run quickrun from within the quickrun buffer."