summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-06-17 03:13:38 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-06-17 03:13:38 +0200
commite582b04710dbbdb84ad9df350e3feb29dcad3c5a (patch)
treea1b2e1e00e403b765212481e3af7978d80739b6b
parent7d43df1ae0815171e22637ac0698a95039396acd (diff)
downloadgeiser-chez-e582b04710dbbdb84ad9df350e3feb29dcad3c5a.tar.gz
geiser-chez-e582b04710dbbdb84ad9df350e3feb29dcad3c5a.tar.bz2
Implementation-specific backtrace display.
-rw-r--r--elisp/geiser-debug.el11
-rw-r--r--elisp/geiser-impl.el3
-rw-r--r--elisp/geiser.el2
3 files changed, 12 insertions, 4 deletions
diff --git a/elisp/geiser-debug.el b/elisp/geiser-debug.el
index f0dc6ec..3bf262c 100644
--- a/elisp/geiser-debug.el
+++ b/elisp/geiser-debug.el
@@ -25,6 +25,7 @@
;;; Code:
+(require 'geiser-impl)
(require 'geiser-eval)
(require 'geiser-popup)
(require 'geiser-base)
@@ -60,13 +61,17 @@
(defun geiser-debug--display-retort (what ret)
(let* ((err (geiser-eval--retort-error ret))
- (output (geiser-eval--retort-output ret)))
+ (key (geiser-eval--error-key err))
+ (output (geiser-eval--retort-output ret))
+ (impl geiser-impl--implementation)
+ (module (geiser-eval--get-module)))
(geiser-debug--with-buffer
(erase-buffer)
(insert what)
(newline 2)
- (when err (insert (geiser-eval--error-str err) "\n\n"))
- (when output (insert output "\n\n"))
+ (unless (geiser-impl--display-error impl module key output)
+ (when err (insert (geiser-eval--error-str err) "\n\n"))
+ (when output (insert output "\n\n")))
(goto-char (point-min)))
(when err (geiser-debug--pop-to-buffer))))
diff --git a/elisp/geiser-impl.el b/elisp/geiser-impl.el
index b4c01c7..fadc8b6 100644
--- a/elisp/geiser-impl.el
+++ b/elisp/geiser-impl.el
@@ -186,6 +186,9 @@
(defsubst geiser-impl--external-help (impl symbol module)
(geiser-impl--call-if-bound impl "external-help" symbol module))
+(defsubst geiser-impl--display-error (impl module key msg)
+ (geiser-impl--call-if-bound impl "display-error" module key msg))
+
;;; Access to implementation guessing function:
diff --git a/elisp/geiser.el b/elisp/geiser.el
index 926cb4f..748fb23 100644
--- a/elisp/geiser.el
+++ b/elisp/geiser.el
@@ -117,11 +117,11 @@
geiser-xref
geiser-edit
geiser-doc
+ geiser-debug
geiser-impl
geiser-completion
geiser-autodoc
geiser-compile
- geiser-debug
geiser-eval
geiser-connection
geiser-syntax