fixed some repl-printing related bugs that would make 'write' sensitive to pretty-print's parameters in drscheme's repl
svn: r18321
This commit is contained in:
parent
c5a3b9ee16
commit
50a6a585b1
|
@ -283,6 +283,8 @@
|
|||
simple-settings->vector
|
||||
|
||||
simple-module-based-language-config-panel
|
||||
simple-module-based-language-convert-value
|
||||
setup-printing-parameters
|
||||
|
||||
add-snip-value
|
||||
setup-setup-values
|
||||
|
|
|
@ -333,21 +333,23 @@
|
|||
|
||||
;; simple-module-based-language-render-value/format : TST settings port (union #f (snip% -> void)) (union 'infinity number) -> void
|
||||
(define (simple-module-based-language-render-value/format value settings port width)
|
||||
(let ([converted-value (simple-module-based-language-convert-value value settings)])
|
||||
(setup-printing-parameters
|
||||
(λ ()
|
||||
(cond
|
||||
[(simple-settings-insert-newlines settings)
|
||||
(if (number? width)
|
||||
(parameterize ([pretty-print-columns width])
|
||||
(pretty-print converted-value port))
|
||||
(pretty-print converted-value port))]
|
||||
[else
|
||||
(parameterize ([pretty-print-columns 'infinity])
|
||||
(let ([converted-value (simple-module-based-language-convert-value value settings)])
|
||||
(setup-printing-parameters
|
||||
(λ ()
|
||||
(cond
|
||||
[(simple-settings-insert-newlines settings)
|
||||
(if (number? width)
|
||||
(parameterize ([pretty-print-columns width])
|
||||
(pretty-print converted-value port))
|
||||
(newline port)]))
|
||||
settings
|
||||
width)))
|
||||
(pretty-print converted-value port))]
|
||||
[else
|
||||
(parameterize ([pretty-print-columns 'infinity])
|
||||
(pretty-print converted-value port))
|
||||
(newline port)]))
|
||||
settings
|
||||
width)))
|
||||
|
||||
(define default-pretty-print-current-style-table (pretty-print-current-style-table))
|
||||
|
||||
;; setup-printing-parameters : (-> void) simple-settings number -> void
|
||||
(define (setup-printing-parameters thunk settings width)
|
||||
|
@ -366,7 +368,20 @@
|
|||
0)]
|
||||
[pretty-print-pre-print-hook (λ (val port) (void))]
|
||||
[pretty-print-post-print-hook (λ (val port) (void))]
|
||||
|
||||
[pretty-print-exact-as-decimal #f]
|
||||
[pretty-print-depth #f]
|
||||
[pretty-print-.-symbol-without-bars #f]
|
||||
[pretty-print-show-inexactness #f]
|
||||
[pretty-print-abbreviate-read-macros #t]
|
||||
[pretty-print-current-style-table default-pretty-print-current-style-table]
|
||||
[pretty-print-remap-stylable (λ (x) #f)]
|
||||
[pretty-print-print-line
|
||||
(lambda (line port offset width)
|
||||
(when (and (number? width)
|
||||
(not (eq? 0 line)))
|
||||
(newline port))
|
||||
0)]
|
||||
|
||||
[pretty-print-columns width]
|
||||
[pretty-print-size-hook
|
||||
(λ (value display? port)
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -184,16 +184,31 @@
|
|||
(thunk)))
|
||||
|
||||
(define/override (render-value/format value settings port width)
|
||||
(set-printing-parameters
|
||||
settings
|
||||
(lambda ()
|
||||
(super render-value/format value settings port width))))
|
||||
|
||||
(teaching-language-render-value/format value settings port width))
|
||||
(define/override (render-value value settings port)
|
||||
(set-printing-parameters
|
||||
(teaching-language-render-value/format value settings port 'infinity))
|
||||
|
||||
(define/private (teaching-language-render-value/format value settings port width)
|
||||
;; set drscheme's printing parameters
|
||||
(drscheme:language:setup-printing-parameters
|
||||
(λ ()
|
||||
;; then adjust the settings for the teaching languages
|
||||
(set-printing-parameters
|
||||
settings
|
||||
(λ ()
|
||||
(let ([converted-value (drscheme:language:simple-module-based-language-convert-value value settings)])
|
||||
(cond
|
||||
[(drscheme:language:simple-settings-insert-newlines settings)
|
||||
(if (number? width)
|
||||
(parameterize ([pretty-print-columns width])
|
||||
(pretty-print converted-value port))
|
||||
(pretty-print converted-value port))]
|
||||
[else
|
||||
(parameterize ([pretty-print-columns 'infinity])
|
||||
(pretty-print converted-value port))
|
||||
(newline port)])))))
|
||||
settings
|
||||
(lambda ()
|
||||
(super render-value value settings port))))
|
||||
width))
|
||||
|
||||
(super-new)))
|
||||
|
||||
|
|
|
@ -39,9 +39,11 @@
|
|||
(exact? x)
|
||||
(real? x)
|
||||
(not (integer? x))))
|
||||
|
||||
|
||||
(define default-pretty-print-current-style-table (pretty-print-current-style-table))
|
||||
|
||||
(define (do-printing pretty value port)
|
||||
(parameterize (;; these three handlers aren't used, but are set to override the user's settings
|
||||
(parameterize (;; these handlers aren't used, but are set to override the user's settings
|
||||
[pretty-print-print-line (λ (line-number op old-line dest-columns)
|
||||
(when (and (not (equal? line-number 0))
|
||||
(not (equal? dest-columns 'infinity)))
|
||||
|
@ -50,7 +52,20 @@
|
|||
[pretty-print-pre-print-hook (λ (val port) (void))]
|
||||
[pretty-print-post-print-hook (λ (val port) (void))]
|
||||
[pretty-print-columns 'infinity]
|
||||
|
||||
[pretty-print-exact-as-decimal #f]
|
||||
[pretty-print-depth #f]
|
||||
[pretty-print-.-symbol-without-bars #f]
|
||||
[pretty-print-show-inexactness #f]
|
||||
[pretty-print-abbreviate-read-macros #t]
|
||||
[pretty-print-current-style-table default-pretty-print-current-style-table]
|
||||
[pretty-print-remap-stylable (λ (x) #f)]
|
||||
[pretty-print-print-line
|
||||
(lambda (line port offset width)
|
||||
(when (and (number? width)
|
||||
(not (eq? 0 line)))
|
||||
(newline port))
|
||||
0)]
|
||||
|
||||
[pretty-print-size-hook
|
||||
(λ (value display? port)
|
||||
(cond
|
||||
|
|
|
@ -972,6 +972,21 @@ This produces an ACK message
|
|||
void
|
||||
void)
|
||||
|
||||
(mktest (format "~s\n~s"
|
||||
`(require scheme/pretty)
|
||||
`(parameterize ((pretty-print-exact-as-decimal #t)) (display 1/4)))
|
||||
|
||||
("1/4"
|
||||
"1/4"
|
||||
"1/4"
|
||||
"1/4"
|
||||
"1/4"
|
||||
"1/4")
|
||||
'interactions
|
||||
#f
|
||||
void
|
||||
void)
|
||||
|
||||
(mktest
|
||||
(string-append
|
||||
"(define p (open-output-string))\n"
|
||||
|
|
Loading…
Reference in New Issue
Block a user