35 lines
849 B
Scheme
35 lines
849 B
Scheme
|
|
#lang scheme/base
|
|
(require scheme/pretty
|
|
scheme/class
|
|
"debug-format.ss"
|
|
"prefs.ss"
|
|
"view.ss")
|
|
(provide debug-file)
|
|
|
|
(define (widget-mixin %)
|
|
(class %
|
|
(define/override (top-interaction-kw? x)
|
|
(eq? (syntax-e x) '#%top-interaction))
|
|
(super-new)))
|
|
|
|
(define stepper-frame%
|
|
(class macro-stepper-frame%
|
|
(define/override (get-macro-stepper-widget%)
|
|
(widget-mixin (super get-macro-stepper-widget%)))
|
|
(super-new)))
|
|
|
|
(define (make-stepper)
|
|
(let ([f (new macro-stepper-frame%
|
|
(config (new macro-stepper-config/prefs%)))])
|
|
(send f show #t)
|
|
(send f get-widget)))
|
|
|
|
(define (debug-file file)
|
|
(let-values ([(events msg ctx) (load-debug-file file)])
|
|
(pretty-print msg)
|
|
(pretty-print ctx)
|
|
(let* ([w (make-stepper)])
|
|
(send w add-trace events)
|
|
w)))
|