]> git.eshelyaron.com Git - emacs.git/commitdiff
Make non-recursive error messages in edebug prettier
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 2 May 2022 11:55:56 +0000 (13:55 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 2 May 2022 11:55:56 +0000 (13:55 +0200)
* lisp/emacs-lisp/edebug.el (edebug-eval-expression): Make the
error message (when recursive debugging is off) prettier.

lisp/emacs-lisp/edebug.el

index 85545f9f351ba9772a0df68eea2531955fd9c150..d8b0a13c30570e105bc41d1a7b0733d61a658503 100644 (file)
@@ -3712,14 +3712,25 @@ Return the result of the last expression."
 If interactive, prompt for the expression.
 Print result in minibuffer."
   (interactive (list (read--expression "Eval: ")))
-  (princ
-   (edebug-outside-excursion
-    (let ((result (if debug-allow-recursive-debug
-                      (edebug-eval expr)
-                    (edebug-safe-eval expr))))
-      (values--store-value result)
-      (concat (edebug-safe-prin1-to-string result)
-              (eval-expression-print-format result))))))
+  (let* ((errored nil)
+         (result
+          (edebug-outside-excursion
+           (let ((result (if debug-allow-recursive-debug
+                             (edebug-eval expr)
+                           (condition-case err
+                               (edebug-eval expr)
+                             (error
+                              (setq errored
+                                    (format "%s: %s"
+                                           (get (car err) 'error-message)
+                                           (car (cdr err)))))))))
+             (unless errored
+               (values--store-value result)
+               (concat (edebug-safe-prin1-to-string result)
+                       (eval-expression-print-format result)))))))
+    (if errored
+        (message "Error: %s" errored)
+      (princ result))))
 
 (defun edebug-eval-last-sexp (&optional no-truncate)
   "Evaluate sexp before point in the outside environment.