bkyk8rc3zvpnsf5inmcqq4n3k98cv6hj-my-site-hyper-literate-git.test.suzanne.soy-0.0.1

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 04a6e274f9a7afb859cb55c50cb6bd2df12ca269
parent b50c8a7f6ad113ee10f7fb272cb454f20b94d7f8
Author: Robby Findler <robby@racket-lang.org>
Date:   Wed, 20 Mar 2013 21:18:47 -0500

added scribble-exn->string

original commit: a29f37f18b19e8a87f01fb4da147c8c30eee788b

Diffstat:
Mcollects/scribble/eval.rkt | 12+++++++++---
Mcollects/scribblings/scribble/eval.scrbl | 9+++++++++
2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/collects/scribble/eval.rkt b/collects/scribble/eval.rkt @@ -30,6 +30,7 @@ make-eval-factory close-eval + scribble-exn->string scribble-eval-handler) (define scribble-eval-handler @@ -242,9 +243,7 @@ (define (do-ev s) (with-handlers ([(lambda (x) (not (exn:break? x))) (lambda (e) - (cons (if (exn? e) - (exn-message e) - (format "uncaught exception: ~s" e)) + (cons ((scribble-exn->string) e) (get-outputs)))]) (cons (render-value (do-plain-eval ev s #t)) (get-outputs)))) (define (do-ev/expect s expect) @@ -264,6 +263,13 @@ (list (list (void)) "" "") (do-ev/expect s expect)))))) +(define scribble-exn->string + (make-parameter + (λ (e) + (if (exn? e) + (exn-message e) + (format "uncaught exception: ~s" e))))) + ;; Since we evaluate everything in an interaction before we typeset, ;; copy each value to avoid side-effects. (define (copy-value v ht) diff --git a/collects/scribblings/scribble/eval.scrbl b/collects/scribblings/scribble/eval.scrbl @@ -196,3 +196,12 @@ is supplied as the first argument to the parameter's value, and the second argument is the form to evaluate. The last argument is @racket[#t] if exceptions are being captured (to display exception results), @racket[#f] otherwise.} + +@defparam[scribble-exn->string handler (-> (or/c exn? any/c) string?)]{ + A parameter that controls how exceptions are rendered by + @racket[interaction]. Defaults to + @racketblock[(λ (e) + (if (exn? e) + (exn-message e) + (format "uncaught exception: ~s" e)))] +}