Function: ob-clojure-eval-with-cider

ob-clojure-eval-with-cider is a byte-compiled function defined in ob-clojure.el.gz.

Signature

(ob-clojure-eval-with-cider EXPANDED PARAMS)

Documentation

Evaluate EXPANDED code block with PARAMS using cider.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ob-clojure.el.gz
(defun ob-clojure-eval-with-cider (expanded params)
  "Evaluate EXPANDED code block with PARAMS using cider."
  (condition-case nil (require 'cider)
    (user-error "cider not available"))
  (let ((connection (cider-current-connection (cdr (assq :target params))))
	(result-params (cdr (assq :result-params params)))
	result0)
    (unless connection (sesman-start-session 'CIDER))
    (if (not connection)
	;; Display in the result instead of using `user-error'
	(setq result0 "Please reevaluate when nREPL is connected")
      (ob-clojure-with-temp-expanded expanded params
	(let ((response (nrepl-sync-request:eval exp connection)))
	  (push (or (nrepl-dict-get response "root-ex")
		    (nrepl-dict-get response "ex")
		    (nrepl-dict-get
		     response (if (or (member "output" result-params)
				      (member "pp" result-params))
				  "out"
				"value")))
		result0)))
      (ob-clojure-string-or-list
       ;; Filter out s-expressions that return nil (string "nil"
       ;; from nrepl eval) or comment forms (actual nil from nrepl)
       (reverse (delete "" (mapcar (lambda (r)
				     (replace-regexp-in-string "nil" "" (or r "")))
				   result0)))))))