tools/eval: conform to new conventions

This commit is contained in:
Henrik Lissner 2019-07-22 23:29:51 +02:00
parent 28aead72ef
commit 7562d29d4b
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -13,18 +13,18 @@
(set-popup-rule! "^\\*quickrun" :size 0.3 :ttl 0) (set-popup-rule! "^\\*quickrun" :size 0.3 :ttl 0)
(defun +eval*quickrun-auto-close (&rest _) (def-advice! +eval-quickrun-auto-close-a (&rest _)
"Allows us to silently re-run quickrun from within the quickrun buffer." "Allows us to silently re-run quickrun from within the quickrun buffer."
:before '(quickrun quickrun-region)
(when-let (win (get-buffer-window quickrun--buffer-name)) (when-let (win (get-buffer-window quickrun--buffer-name))
(let ((inhibit-message t)) (let ((inhibit-message t))
(quickrun--kill-running-process) (quickrun--kill-running-process)
(message "")) (message ""))
(delete-window win))) (delete-window win)))
(advice-add #'quickrun :before #'+eval*quickrun-auto-close)
(advice-add #'quickrun-region :before #'+eval*quickrun-auto-close)
(defun +eval*quickrun--outputter-replace-region () (def-advice! +eval-quickrun--outputter-replace-region-a ()
"Make `quickrun-replace-region' recognize evil visual selections." "Make `quickrun-replace-region' recognize evil visual selections."
:override #'quickrun--outputter-replace-region
(let ((output (buffer-substring-no-properties (point-min) (point-max)))) (let ((output (buffer-substring-no-properties (point-min) (point-max))))
(with-current-buffer quickrun--original-buffer (with-current-buffer quickrun--original-buffer
(cl-destructuring-bind (beg . end) (cl-destructuring-bind (beg . end)
@ -37,19 +37,18 @@
(delete-region beg end) (delete-region beg end)
(insert output)) (insert output))
(setq quickrun-option-outputter quickrun--original-outputter)))) (setq quickrun-option-outputter quickrun--original-outputter))))
(advice-add #'quickrun--outputter-replace-region :override #'+eval*quickrun--outputter-replace-region)
(defun +eval|quickrun-shrink-window () (add-hook 'quickrun-after-run-hook
"Shrink the quickrun output window once code evaluation is complete." (defun +eval-quickrun-shrink-window-h ()
(when-let (win (get-buffer-window quickrun--buffer-name)) "Shrink the quickrun output window once code evaluation is complete."
(with-selected-window (get-buffer-window quickrun--buffer-name) (when-let (win (get-buffer-window quickrun--buffer-name))
(let ((ignore-window-parameters t)) (with-selected-window (get-buffer-window quickrun--buffer-name)
(shrink-window-if-larger-than-buffer))))) (let ((ignore-window-parameters t))
(add-hook 'quickrun-after-run-hook #'+eval|quickrun-shrink-window) (shrink-window-if-larger-than-buffer))))))
(defun +eval|quickrun-scroll-to-bof () (add-hook 'quickrun-after-run-hook
"Ensures window is scrolled to BOF on invocation." (defun +eval-quickrun-scroll-to-bof-h ()
(when-let (win (get-buffer-window quickrun--buffer-name)) "Ensures window is scrolled to BOF on invocation."
(with-selected-window win (when-let (win (get-buffer-window quickrun--buffer-name))
(goto-char (point-min))))) (with-selected-window win
(add-hook 'quickrun-after-run-hook #'+eval|quickrun-scroll-to-bof)) (goto-char (point-min)))))))