summaryrefslogtreecommitdiff
path: root/cider-debug.el
diff options
context:
space:
mode:
authorArtur Malabarba <bruce.connor.am@gmail.com>2015-07-14 21:45:37 +0100
committerArtur Malabarba <bruce.connor.am@gmail.com>2015-07-14 21:46:12 +0100
commit7773b917f62ec3d4087d68a90ddc2faf69874239 (patch)
treeee3f5045aad5feecfb98a103114cdd547607f644 /cider-debug.el
parent4ee7431ff9408c8be092bd4736de31e87ee9e88e (diff)
Refactor debugger message handling
Diffstat (limited to 'cider-debug.el')
-rw-r--r--cider-debug.el26
1 files changed, 16 insertions, 10 deletions
diff --git a/cider-debug.el b/cider-debug.el
index 3f8b5c0d..930316dc 100644
--- a/cider-debug.el
+++ b/cider-debug.el
@@ -139,23 +139,29 @@ This variable must be set before starting the repl connection."
(goto-char (point-min)))
(message "No currently instrumented definitions")))
+(defun cider--debug-response-handler (response)
+ "Handle responses from the cider.debug middleware."
+ (nrepl-dbind-response response (status id instrumented-defs ns causes)
+ (when (member "instrumented-defs" status)
+ (cider--debug-handle-instrumented-defs instrumented-defs ns))
+ (when (member "eval-error" status)
+ (cider--render-stacktrace-causes causes))
+ (when (member "need-debug-input" status)
+ (cider--handle-debug response))
+ (when (member "done" status)
+ (puthash id (gethash id nrepl-pending-requests)
+ nrepl-completed-requests)
+ (remhash id nrepl-pending-requests))))
+
(defun cider--debug-init-connection ()
- "Initialize a connection with clj-debugger."
+ "Initialize a connection with the cider.debug middleware."
(nrepl-send-request
(append '("op" "init-debugger")
(when cider-debug-print-level
(list "print-level" cider-debug-print-level))
(when cider-debug-print-length
(list "print-length" cider-debug-print-length)))
- (lambda (response)
- (nrepl-dbind-response response (status id instrumented-defs ns)
- (if (not (member "done" status))
- (if (member "instrumented-defs" response)
- (cider--debug-handle-instrumented-defs instrumented-defs ns)
- (cider--handle-debug response))
- (puthash id (gethash id nrepl-pending-requests)
- nrepl-completed-requests)
- (remhash id nrepl-pending-requests))))))
+ #'cider--debug-response-handler))
;;; Debugging overlays