emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/cider c07ace5544 1/3: Display debug-on-exception messages


From: ELPA Syncer
Subject: [nongnu] elpa/cider c07ace5544 1/3: Display debug-on-exception messages
Date: Mon, 25 Mar 2024 15:59:28 -0400 (EDT)

branch: elpa/cider
commit c07ace554458cd8f2522dff9164cb7b298bee6fe
Author: yuhan0 <qythium@gmail.com>
Commit: Bozhidar Batsov <bozhidar@batsov.dev>

    Display debug-on-exception messages
---
 cider-debug.el | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/cider-debug.el b/cider-debug.el
index f06a8c06b7..9918531d75 100644
--- a/cider-debug.el
+++ b/cider-debug.el
@@ -132,7 +132,10 @@ configure `cider-debug-prompt' instead."
               (member "stack" status))
       ;; TODO: Make the error buffer a bit friendlier when we're just printing
       ;; the stack.
-      (cider--render-stacktrace-causes causes))
+      (nrepl-dbind-response response (causes caught-msg)
+        (if cider-show-error-buffer
+            (cider--render-stacktrace-causes causes)
+          (cider--debug-display-result-overlay nil caught-msg))))
     (when (member "need-debug-input" status)
       (cider--handle-debug response))
     (when (member "done" status)
@@ -154,15 +157,17 @@ configure `cider-debug-prompt' instead."
   #("." 0 1 (display (left-fringe right-triangle)))
   "Used as an overlay's before-string prop to place a fringe arrow.")
 
-(defun cider--debug-display-result-overlay (value)
+(defun cider--debug-display-result-overlay (value caught)
   "Place an overlay at point displaying VALUE."
   (when cider-debug-use-overlays
     ;; This is cosmetic, let's ensure it doesn't break the session no matter 
what.
     (ignore-errors
       ;; Result
-      (cider--make-result-overlay (cider-font-lock-as-clojure value)
+      (cider--make-result-overlay (or caught (cider-font-lock-as-clojure 
value))
         :where (point-marker)
         :type 'debug-result
+        :prepend-face (if caught 'cider-error-overlay-face
+                        'cider-result-overlay-face)
         'before-string cider--fringe-arrow-string)
       ;; Code
       (cider--make-overlay (save-excursion (clojure-backward-logical-sexp 1) 
(point))
@@ -652,7 +657,7 @@ is a coordinate measure in sexps."
 RESPONSE is a message received from the nrepl describing the input
 needed.  It is expected to contain at least \"key\", \"input-type\", and
 \"prompt\", and possibly other entries depending on the input-type."
-  (nrepl-dbind-response response (debug-value key input-type prompt inspect)
+  (nrepl-dbind-response response (debug-value key input-type prompt inspect 
caught-msg)
     (condition-case-unless-debug e
         (progn
           (pcase input-type
@@ -674,7 +679,7 @@ needed.  It is expected to contain at least \"key\", 
\"input-type\", and
              ;; flicker even if we immediately recreate the overlays.
              (cider--debug-remove-overlays)
              (when cider-debug-use-overlays
-               (cider--debug-display-result-overlay debug-value))
+               (cider--debug-display-result-overlay debug-value caught-msg))
              (setq cider--debug-mode-response response)
              (cider--debug-mode 1)))
           (when inspect
@@ -766,7 +771,7 @@ The boolean value of FORCE will be sent in the reply."
       ;; Is HERE inside the sexp being debugged?
       (when (or (< here (point))
                 (save-excursion
-                  (forward-sexp 1)
+                  (clojure-forward-logical-sexp 1)
                   (> here (point))))
         (user-error "Point is outside the sexp being debugged"))
       ;; Move forward until start of sexp.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]