@@ -656,18 +656,21 @@ evaluation command. Honor `cider-auto-jump-to-error'."
656
656
(defun cider-insert-eval-handler (&optional buffer )
657
657
" Make an nREPL evaluation handler for the BUFFER.
658
658
The handler simply inserts the result value in BUFFER."
659
- (let ((eval-buffer (current-buffer )))
659
+ (let ((eval-buffer (current-buffer ))
660
+ (res " " ))
660
661
(nrepl-make-response-handler (or buffer eval-buffer)
661
662
(lambda (_buffer value )
662
663
(with-current-buffer buffer
663
664
(insert value))
664
665
(when cider-eval-register
665
- (set-register cider-eval-register value)) )
666
+ (setq res ( concat res value))) )
666
667
(lambda (_buffer out )
667
668
(cider-repl-emit-interactive-stdout out))
668
669
(lambda (_buffer err )
669
670
(cider-handle-compilation-errors err eval-buffer))
670
- '())))
671
+ (lambda (_buffer )
672
+ (when cider-eval-register
673
+ (set-register cider-eval-register res))))))
671
674
672
675
(defun cider--emit-interactive-eval-output (output repl-emit-function )
673
676
" Emit output resulting from interactive code evaluation.
@@ -726,17 +729,12 @@ when `cider-auto-inspect-after-eval' is non-nil."
726
729
(end (or (car-safe (cdr-safe place)) place))
727
730
(beg (when beg (copy-marker beg)))
728
731
(end (when end (copy-marker end)))
729
- (fringed nil ))
732
+ (fringed nil )
733
+ (res " " ))
730
734
(nrepl-make-response-handler (or buffer eval-buffer)
731
735
(lambda (_buffer value )
732
- (if beg
733
- (unless fringed
734
- (cider--make-fringe-overlays-for-region beg end)
735
- (setq fringed t ))
736
- (cider--make-fringe-overlay end))
737
- (cider--display-interactive-eval-result value end)
738
- (when cider-eval-register
739
- (set-register cider-eval-register value)))
736
+ (setq res (concat res value))
737
+ (cider--display-interactive-eval-result res end))
740
738
(lambda (_buffer out )
741
739
(cider-emit-interactive-eval-output out))
742
740
(lambda (_buffer err )
@@ -746,20 +744,31 @@ when `cider-auto-inspect-after-eval' is non-nil."
746
744
(cider--display-interactive-eval-result
747
745
err end 'cider-error-overlay-face )))
748
746
(cider-handle-compilation-errors err eval-buffer))
749
- (when (and cider-auto-inspect-after-eval
750
- (boundp 'cider-inspector-buffer )
751
- (windowp (get-buffer-window cider-inspector-buffer 'visible )))
752
- (lambda (buffer )
747
+ (lambda (buffer )
748
+ (if beg
749
+ (unless fringed
750
+ (cider--make-fringe-overlays-for-region beg end)
751
+ (setq fringed t ))
752
+ (cider--make-fringe-overlay end))
753
+ (when (and cider-auto-inspect-after-eval
754
+ (boundp 'cider-inspector-buffer )
755
+ (windowp (get-buffer-window cider-inspector-buffer 'visible )))
753
756
(cider-inspect-last-result)
754
- (select-window (get-buffer-window buffer)))))))
757
+ (select-window (get-buffer-window buffer)))
758
+ (when cider-eval-register
759
+ (set-register cider-eval-register res))))))
760
+
755
761
756
762
(defun cider-load-file-handler (&optional buffer done-handler )
757
763
" Make a load file handler for BUFFER.
758
764
Optional argument DONE-HANDLER lambda will be run once load is complete."
759
- (let ((eval-buffer (current-buffer )))
765
+ (let ((eval-buffer (current-buffer ))
766
+ (res " " ))
760
767
(nrepl-make-response-handler (or buffer eval-buffer)
761
768
(lambda (buffer value )
762
769
(cider--display-interactive-eval-result value)
770
+ (when cider-eval-register
771
+ (setq res (concat res value)))
763
772
(when (buffer-live-p buffer)
764
773
(with-current-buffer buffer
765
774
(cider--make-fringe-overlays-for-region (point-min ) (point-max ))
@@ -769,45 +778,54 @@ Optional argument DONE-HANDLER lambda will be run once load is complete."
769
778
(lambda (_buffer err )
770
779
(cider-emit-interactive-eval-err-output err)
771
780
(cider-handle-compilation-errors err eval-buffer))
772
- (or done-handler '())
781
+ (lambda (buffer )
782
+ (when cider-eval-register
783
+ (set-register cider-eval-register res))
784
+ (when done-handler
785
+ (funcall done-handler buffer)))
773
786
(lambda ()
774
787
(funcall nrepl-err-handler)))))
775
788
776
789
(defun cider-eval-print-handler (&optional buffer )
777
790
" Make a handler for evaluating and printing result in BUFFER."
778
- (nrepl-make-response-handler (or buffer (current-buffer ))
779
- (lambda (buffer value )
780
- (with-current-buffer buffer
781
- (insert
782
- (if (derived-mode-p 'cider-clojure-interaction-mode )
783
- (format " \n %s \n " value)
784
- value)))
785
- (when cider-eval-register
786
- (set-register cider-eval-register value)))
787
- (lambda (_buffer out )
788
- (cider-emit-interactive-eval-output out))
789
- (lambda (_buffer err )
790
- (cider-emit-interactive-eval-err-output err))
791
- '()))
791
+ (let ((res " " ))
792
+ (nrepl-make-response-handler (or buffer (current-buffer ))
793
+ (lambda (buffer value )
794
+ (with-current-buffer buffer
795
+ (insert
796
+ (if (derived-mode-p 'cider-clojure-interaction-mode )
797
+ (format " \n %s \n " value)
798
+ value)))
799
+ (when cider-eval-register
800
+ (setq res (concat res value))))
801
+ (lambda (_buffer out )
802
+ (cider-emit-interactive-eval-output out))
803
+ (lambda (_buffer err )
804
+ (cider-emit-interactive-eval-err-output err))
805
+ (lambda (_buffer )
806
+ (when cider-eval-register
807
+ (set-register cider-eval-register res))))))
792
808
793
809
(defun cider-eval-print-with-comment-handler (buffer location comment-prefix )
794
810
" Make a handler for evaluating and printing commented results in BUFFER.
795
811
LOCATION is the location marker at which to insert. COMMENT-PREFIX is the
796
812
comment prefix to use."
797
- (nrepl-make-response-handler buffer
798
- (lambda (buffer value )
799
- (with-current-buffer buffer
800
- (save-excursion
801
- (goto-char (marker-position location))
802
- (insert (concat comment-prefix
803
- value " \n " ))))
804
- (when cider-eval-register
805
- (set-register cider-eval-register value)))
806
- (lambda (_buffer out )
807
- (cider-emit-interactive-eval-output out))
808
- (lambda (_buffer err )
809
- (cider-emit-interactive-eval-err-output err))
810
- '()))
813
+ (let ((res " " ))
814
+ (nrepl-make-response-handler buffer
815
+ (lambda (_buffer value )
816
+ (setq res (concat res value)))
817
+ (lambda (_buffer out )
818
+ (cider-emit-interactive-eval-output out))
819
+ (lambda (_buffer err )
820
+ (cider-emit-interactive-eval-err-output err))
821
+ (lambda (buffer )
822
+ (with-current-buffer buffer
823
+ (save-excursion
824
+ (goto-char (marker-position location))
825
+ (insert (concat comment-prefix
826
+ res " \n " ))))
827
+ (when cider-eval-register
828
+ (set-register cider-eval-register value))))))
811
829
812
830
(defun cider-maybe-insert-multiline-comment (result comment-prefix continued-prefix comment-postfix )
813
831
" Insert eval RESULT at current location if RESULT is not empty.
@@ -842,7 +860,9 @@ COMMENT-POSTFIX is the text to output after the last line."
842
860
(with-current-buffer buffer
843
861
(save-excursion
844
862
(goto-char (marker-position location))
845
- (cider-maybe-insert-multiline-comment res comment-prefix continued-prefix comment-postfix))))
863
+ (cider-maybe-insert-multiline-comment res comment-prefix continued-prefix comment-postfix)))
864
+ (when cider-eval-register
865
+ (set-register cider-eval-register res)))
846
866
nil
847
867
nil
848
868
(lambda (_buffer warning )
0 commit comments