branch: elpa/cider
commit 1580f119412c5c113d6394a6c7b3a27c6a0a8789
Author: yuhan0 <[email protected]>
Commit: Bozhidar Batsov <[email protected]>
Remove eval-register from printing handlers
Results are already output to a buffer where they can be easily copied.
Avoids storing huge results in memory and triggering the GC
---
cider-eval.el | 33 ++++++++++++++++-----------------
1 file changed, 16 insertions(+), 17 deletions(-)
diff --git a/cider-eval.el b/cider-eval.el
index fe0cba1c67..e47f1824e2 100644
--- a/cider-eval.el
+++ b/cider-eval.el
@@ -788,23 +788,20 @@ Optional argument DONE-HANDLER lambda will be run once
load is complete."
(defun cider-eval-print-handler (&optional buffer)
"Make a handler for evaluating and printing result in BUFFER."
- (let ((res ""))
- (nrepl-make-response-handler (or buffer (current-buffer))
- (lambda (buffer value)
- (with-current-buffer buffer
- (insert
- (if (derived-mode-p
'cider-clojure-interaction-mode)
- (format "\n%s\n" value)
- value)))
- (when cider-eval-register
- (setq res (concat res value))))
- (lambda (_buffer out)
- (cider-emit-interactive-eval-output out))
- (lambda (_buffer err)
- (cider-emit-interactive-eval-err-output
err))
- (lambda (_buffer)
- (when cider-eval-register
- (set-register cider-eval-register
res))))))
+ ;; NOTE: cider-eval-register behavior is not implemented here for
performance reasons.
+ ;; See https://github.com/clojure-emacs/cider/pull/3162
+ (nrepl-make-response-handler (or buffer (current-buffer))
+ (lambda (buffer value)
+ (with-current-buffer buffer
+ (insert
+ (if (derived-mode-p
'cider-clojure-interaction-mode)
+ (format "\n%s\n" value)
+ value))))
+ (lambda (_buffer out)
+ (cider-emit-interactive-eval-output out))
+ (lambda (_buffer err)
+ (cider-emit-interactive-eval-err-output err))
+ ()))
(defun cider-eval-print-with-comment-handler (buffer location comment-prefix)
"Make a handler for evaluating and printing commented results in BUFFER.
@@ -871,6 +868,8 @@ COMMENT-POSTFIX is the text to output after the last line."
(defun cider-popup-eval-handler (&optional buffer)
"Make a handler for printing evaluation results in popup BUFFER.
This is used by pretty-printing commands."
+ ;; NOTE: cider-eval-register behavior is not implemented here for
performance reasons.
+ ;; See https://github.com/clojure-emacs/cider/pull/3162
(nrepl-make-response-handler
(or buffer (current-buffer))
(lambda (buffer value)