Skip to content

Commit c8f4e7c

Browse files
committed
Merge pull request #832 from vitoshka/read-eval
Use `*cider-read-eval*` buffer for `cider-read-and-eval` error locations
2 parents 2420bd6 + 78c66cd commit c8f4e7c

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

cider-interaction.el

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
(require 'apropos)
5050

5151
(defconst cider-error-buffer "*cider-error*")
52+
(defconst cider-read-eval-buffer "*cider-read-eval*")
5253
(defconst cider-doc-buffer "*cider-doc*")
5354
(defconst cider-result-buffer "*cider-result*")
5455
(defconst cider-nrepl-session-buffer "*cider-nrepl-session*")
@@ -422,7 +423,6 @@ Returns to the buffer in which the command was invoked."
422423
(cider-repl-clear-buffer)
423424
(switch-to-buffer origin-buffer)))
424425

425-
;;; Minibuffer eval
426426
(defvar cider-minibuffer-history '()
427427
"History list of expressions read from the minibuffer.")
428428

@@ -445,12 +445,7 @@ reading input."
445445
(run-hooks 'eval-expression-minibuffer-setup-hook))
446446
(read-from-minibuffer prompt initial-value
447447
cider-minibuffer-map nil
448-
cider-minibuffer-history)))
449-
450-
(defun cider-read-and-eval ()
451-
"Read a sexp from the minibuffer and output its result to the echo area."
452-
(interactive)
453-
(cider-interactive-eval (cider-read-from-minibuffer "CIDER Eval: ")))
448+
'cider-minibuffer-history)))
454449

455450

456451
;;; Utilities
@@ -1378,6 +1373,19 @@ With a PREFIX argument, print the result in the current buffer."
13781373
(goto-char (match-beginning 0))
13791374
(cider-eval-defun-at-point))))
13801375

1376+
(defun cider-read-and-eval ()
1377+
"Read a sexp from the minibuffer and output its result to the echo area."
1378+
(interactive)
1379+
(let* ((form (cider-read-from-minibuffer "CIDER Eval: "))
1380+
(ns-form (if (cider-ns-form-p form) "" (cider-ns-form))))
1381+
(with-current-buffer (get-buffer-create cider-read-eval-buffer)
1382+
(erase-buffer)
1383+
(clojure-mode)
1384+
(insert ns-form "\n")
1385+
(let ((start-pos (point)))
1386+
(insert form)
1387+
(cider-interactive-eval form start-pos)))))
1388+
13811389

13821390
;; Connection and REPL
13831391

0 commit comments

Comments
 (0)