Skip to content

Commit fa18044

Browse files
committed
Tidying up nrepl-make-response-handler.
1 parent 8fb457d commit fa18044

File tree

1 file changed

+31
-39
lines changed

1 file changed

+31
-39
lines changed

nrepl-client.el

Lines changed: 31 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -248,48 +248,40 @@ Bind the value of the provided KEYS and execute BODY."
248248
(put 'nrepl-dbind-response 'lisp-indent-function 2)
249249

250250
(defun nrepl-make-response-handler
251-
(buffer value-handler stdout-handler stderr-handler done-handler
252-
&optional eval-error-handler)
251+
(buffer value-handler stdout-handler stderr-handler done-handler
252+
&optional eval-error-handler)
253253
"Make a response handler for BUFFER.
254254
Uses the specified VALUE-HANDLER, STDOUT-HANDLER, STDERR-HANDLER,
255255
DONE-HANDLER, and EVAL-ERROR-HANDLER as appropriate."
256-
(let ((buffer buffer)
257-
(value-handler value-handler)
258-
(stdout-handler stdout-handler)
259-
(stderr-handler stderr-handler)
260-
(done-handler done-handler)
261-
(eval-error-handler eval-error-handler))
262-
(lambda (response)
263-
(nrepl-dbind-response response (value ns out err status id ex root-ex
264-
session)
265-
(cond (value
266-
(with-current-buffer buffer
267-
(if ns
268-
(setq nrepl-buffer-ns ns)))
269-
(if value-handler
270-
(funcall value-handler buffer value)))
271-
(out
272-
(if stdout-handler
273-
(funcall stdout-handler buffer out)))
274-
(err
275-
(if stderr-handler
276-
(funcall stderr-handler buffer err)))
277-
(status
278-
(if (member "interrupted" status)
279-
(message "Evaluation interrupted."))
280-
(if (member "eval-error" status)
281-
(funcall (or eval-error-handler nrepl-err-handler)
282-
buffer ex root-ex session))
283-
(if (member "namespace-not-found" status)
284-
(message "Namespace not found."))
285-
(if (member "need-input" status)
286-
(cider-need-input buffer))
287-
(if (member "done" status)
288-
(progn
289-
(puthash id (gethash id nrepl-pending-requests) nrepl-completed-requests)
290-
(remhash id nrepl-pending-requests)
291-
(if done-handler
292-
(funcall done-handler buffer))))))))))
256+
(lambda (response)
257+
(nrepl-dbind-response response (value ns out err status id ex root-ex
258+
session)
259+
(cond (value
260+
(with-current-buffer buffer
261+
(when ns (setq nrepl-buffer-ns ns)))
262+
(when value-handler
263+
(funcall value-handler buffer value)))
264+
(out
265+
(when stdout-handler
266+
(funcall stdout-handler buffer out)))
267+
(err
268+
(when stderr-handler
269+
(funcall stderr-handler buffer err)))
270+
(status
271+
(when (member "interrupted" status)
272+
(message "Evaluation interrupted."))
273+
(when (member "eval-error" status)
274+
(funcall (or eval-error-handler nrepl-err-handler)
275+
buffer ex root-ex session))
276+
(when (member "namespace-not-found" status)
277+
(message "Namespace not found."))
278+
(when (member "need-input" status)
279+
(cider-need-input buffer))
280+
(when (member "done" status)
281+
(puthash id (gethash id nrepl-pending-requests) nrepl-completed-requests)
282+
(remhash id nrepl-pending-requests)
283+
(when done-handler
284+
(funcall done-handler buffer))))))))
293285

294286
;;; communication
295287
(defun nrepl-default-handler (response)

0 commit comments

Comments
 (0)