Puts the test display on drscheme's eventspace, even when we don't have a rep yet
Doesn't make a link when there's no editor to link to svn: r9636
This commit is contained in:
parent
7cd9e25970
commit
a48f4923b6
|
@ -129,18 +129,19 @@
|
|||
(send text insert m))
|
||||
(let ((start (send text get-end-position)))
|
||||
(send text insert (format-src dest))
|
||||
(send text set-clickback
|
||||
start (send text get-end-position)
|
||||
(lambda (t s e) (highlight-check-error dest src-editor))
|
||||
#f #f)
|
||||
(let ([end (send text get-end-position)]
|
||||
[c (new style-delta%)])
|
||||
(send text insert " ")
|
||||
(send text change-style
|
||||
(make-object style-delta% 'change-underline #t)
|
||||
start end #f)
|
||||
(send c set-delta-foreground "royalblue")
|
||||
(send text change-style c start end #f))))
|
||||
(when (and src-editor current-rep)
|
||||
(send text set-clickback
|
||||
start (send text get-end-position)
|
||||
(lambda (t s e) (highlight-check-error dest src-editor))
|
||||
#f #f)
|
||||
(let ([end (send text get-end-position)]
|
||||
[c (new style-delta%)])
|
||||
(send text insert " ")
|
||||
(send text change-style
|
||||
(make-object style-delta% 'change-underline #t)
|
||||
start end #f)
|
||||
(send c set-delta-foreground "royalblue")
|
||||
(send text change-style c start end #f)))))
|
||||
|
||||
(define (format-src src)
|
||||
(let ([src-file car]
|
||||
|
@ -151,8 +152,10 @@
|
|||
[(symbol? (src-file src)) (string-append " At ")]
|
||||
[(path? (src-file src)) (string-append " In " (path->string (src-file src)) " at ")]
|
||||
[(is-a? (src-file src) editor<%>) " At "])
|
||||
"line " (number->string (src-line src))
|
||||
" column " (number->string (src-col src)))))
|
||||
"line " (cond [(src-line src) => number->string]
|
||||
[else "(unknown)"])
|
||||
" column " (cond [(src-col src) => number->string]
|
||||
[else "(unknown)"]))))
|
||||
|
||||
(define (highlight-check-error srcloc src-editor)
|
||||
(let* ([src-pos cadddr]
|
||||
|
|
|
@ -142,13 +142,16 @@
|
|||
(fprintf port "This program should be tested.~n"))
|
||||
(define/public (display-results rep event-space)
|
||||
(send test-display install-info test-info)
|
||||
|
||||
(if (and rep event-space)
|
||||
(parameterize ([(dynamic-require 'scheme/gui 'current-eventspace)
|
||||
event-space])
|
||||
((dynamic-require 'scheme/gui 'queue-callback)
|
||||
(lambda () (send rep display-test-results test-display))))
|
||||
(send test-display display-results)))
|
||||
(cond
|
||||
[(and rep event-space)
|
||||
(parameterize ([(dynamic-require 'scheme/gui 'current-eventspace)
|
||||
event-space])
|
||||
((dynamic-require 'scheme/gui 'queue-callback)
|
||||
(lambda () (send rep display-test-results test-display))))]
|
||||
[event-space
|
||||
(parameterize ([(dynamic-require 'scheme/gui 'current-eventspace) event-space])
|
||||
((dynamic-require 'scheme/gui 'queue-callback) (lambda () (send test-display display-results))))]
|
||||
[else (send test-display display-results)]))
|
||||
|
||||
(define/pubment (initialize-test test)
|
||||
(inner (void) initialize-test test))
|
||||
|
|
Loading…
Reference in New Issue
Block a user