From 238bfc3712804bc8cf17e50632950bbf736f1e03 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 6 Jun 2016 19:37:51 -0400 Subject: [PATCH] Refactor doom:eval-region --- core/defuns/defuns-quickrun.el | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/core/defuns/defuns-quickrun.el b/core/defuns/defuns-quickrun.el index 683c1c1cb..246d268aa 100644 --- a/core/defuns/defuns-quickrun.el +++ b/core/defuns/defuns-quickrun.el @@ -48,21 +48,23 @@ elisp buffer). Otherwise forward the region to Quickrun." (interactive "") (cond ((eq major-mode 'emacs-lisp-mode) (require 'pp) - (let* ((pp-escape-newlines nil) - (out (pp-to-string (eval (read (buffer-substring-no-properties beg end))))) - (lines (length (s-lines out)))) - (if (< lines 5) - (princ out t) - (let ((buf (get-buffer-create "*eval*"))) - (with-current-buffer buf - (read-only-mode -1) - (setq-local scroll-margin 0) - (emacs-lisp-mode) - (erase-buffer) - (insert out) - (read-only-mode 1) - (goto-char (point-min))) - (pop-to-buffer buf))))) + (let ((result (eval (read (buffer-substring-no-properties beg end)))) + lines) + (let ((buf (get-buffer-create "*eval*"))) + (with-current-buffer buf + (read-only-mode -1) + (setq-local scroll-margin 0) + (erase-buffer) + (prin1 result buf) + (emacs-lisp-mode) + (pp-buffer) + (read-only-mode 1) + (setq lines (count-lines (point-min) (point-max))) + (goto-char (point-min)) + (when (< lines 5) + (message "%s" (buffer-substring (point-min) (point-max))))) + (unless (< lines 5) + (doom/popup-buffer buf))))) (t (quickrun-region beg end)))) ;;;###autoload (autoload 'doom:eval-region-and-replace "defuns-quickrun" nil t)