summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Xu <jay.xu.krfantasy@gmail.com>2020-07-11 20:58:52 +0800
committerJay Xu <jay.xu.krfantasy@gmail.com>2020-07-11 20:58:52 +0800
commit086dbba895bdc40347de1b0bff8f77d8f10192d6 (patch)
tree313661c78190e3260d9ad1ad15eb718cd58fcad2
parentfcb2a6ab8d1bd37ed36030d6e9cc81388761c465 (diff)
downloadgeiser-chez-086dbba895bdc40347de1b0bff8f77d8f10192d6.tar.gz
geiser-chez-086dbba895bdc40347de1b0bff8f77d8f10192d6.tar.bz2
make chez display output and error messages.
-rw-r--r--elisp/geiser-chez.el8
-rw-r--r--scheme/chez/geiser/geiser.ss8
2 files changed, 11 insertions, 5 deletions
diff --git a/elisp/geiser-chez.el b/elisp/geiser-chez.el
index 9a24a72..3d4b495 100644
--- a/elisp/geiser-chez.el
+++ b/elisp/geiser-chez.el
@@ -120,7 +120,13 @@ This function uses `geiser-chez-init-file' if it exists."
(geiser-eval--send/wait "(begin (import (geiser)) (write `((result ) (output . \"\"))) (newline))")))
(defun geiser-chez--display-error (module key msg)
- (and key (message msg) nil))
+ (when (stringp msg)
+ (save-excursion (insert msg))
+ (geiser-edit--buttonize-files))
+ (and (or (eq key 'chez-error-message)
+ (not key))
+ (not (zerop (length msg)))
+ msg))
;;; Implementation definition:
diff --git a/scheme/chez/geiser/geiser.ss b/scheme/chez/geiser/geiser.ss
index 70313ab..2d13952 100644
--- a/scheme/chez/geiser/geiser.ss
+++ b/scheme/chez/geiser/geiser.ss
@@ -55,10 +55,10 @@
(with-exception-handler
(lambda (e)
(k `((result "")
- (output . ,(get-output-string output-string))
- (error (key . ,(with-output-to-string
- (lambda ()
- (display-condition e))))))))
+ (output . ,(with-output-to-string
+ (lambda ()
+ (display-condition e))))
+ (error (key . chez-error-message)))))
(lambda ()
(call-with-values
;; evaluate form, allow for multiple return values,