diff options
author | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-07-14 21:45:37 +0100 |
---|---|---|
committer | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-07-14 21:46:12 +0100 |
commit | 7773b917f62ec3d4087d68a90ddc2faf69874239 (patch) | |
tree | ee3f5045aad5feecfb98a103114cdd547607f644 /cider-debug.el | |
parent | 4ee7431ff9408c8be092bd4736de31e87ee9e88e (diff) |
Refactor debugger message handling
Diffstat (limited to 'cider-debug.el')
-rw-r--r-- | cider-debug.el | 26 |
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 |