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:
parent
b6bf0d7afd
commit
d443aed25c
2 changed files with 14 additions and 7 deletions
|
@ -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."
|
||||
|
|
|
@ -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))))))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue