extended initial-char-width
svn: r13221
This commit is contained in:
parent
a016c8c108
commit
c4630e4526
|
@ -86,7 +86,7 @@
|
||||||
[dark-text-color (parameter/c (or/c string? (is-a?/c color%)))]
|
[dark-text-color (parameter/c (or/c string? (is-a?/c color%)))]
|
||||||
[light-text-color (parameter/c (or/c string? (is-a?/c color%)))]
|
[light-text-color (parameter/c (or/c string? (is-a?/c color%)))]
|
||||||
[initial-font-size (parameter/c number?)]
|
[initial-font-size (parameter/c number?)]
|
||||||
[initial-char-width (parameter/c number?)])
|
[initial-char-width (parameter/c (or/c number? (-> any/c number?)))])
|
||||||
|
|
||||||
(provide reduction-steps-cutoff
|
(provide reduction-steps-cutoff
|
||||||
default-pretty-printer)
|
default-pretty-printer)
|
||||||
|
|
|
@ -10,10 +10,17 @@
|
||||||
size-text%
|
size-text%
|
||||||
default-pretty-printer
|
default-pretty-printer
|
||||||
initial-char-width
|
initial-char-width
|
||||||
resizing-pasteboard-mixin)
|
resizing-pasteboard-mixin
|
||||||
|
get-user-char-width)
|
||||||
|
|
||||||
(define initial-char-width (make-parameter 30))
|
(define initial-char-width (make-parameter 30))
|
||||||
|
|
||||||
|
;; get-user-char-width : value-bound-to-'initial-char-width'-parameter sexp -> number
|
||||||
|
(define (get-user-char-width cw/proc expr)
|
||||||
|
(cond
|
||||||
|
[(number? cw/proc) cw/proc]
|
||||||
|
[else (cw/proc expr)]))
|
||||||
|
|
||||||
(define (default-pretty-printer v port w spec)
|
(define (default-pretty-printer v port w spec)
|
||||||
(parameterize ([pretty-print-columns w]
|
(parameterize ([pretty-print-columns w]
|
||||||
[pretty-print-size-hook
|
[pretty-print-size-hook
|
||||||
|
|
|
@ -716,7 +716,7 @@ todo:
|
||||||
[node node]
|
[node node]
|
||||||
[editor txt]
|
[editor txt]
|
||||||
[expr sexp]
|
[expr sexp]
|
||||||
[char-width init-cw])])
|
[char-width (get-user-char-width init-cw sexp)])])
|
||||||
(send txt set-autowrap-bitmap #f)
|
(send txt set-autowrap-bitmap #f)
|
||||||
#;(send txt freeze-colorer)
|
#;(send txt freeze-colorer)
|
||||||
(send s format-expr)
|
(send s format-expr)
|
||||||
|
|
|
@ -238,6 +238,7 @@
|
||||||
(define main-eventspace (current-eventspace))
|
(define main-eventspace (current-eventspace))
|
||||||
(define saved-parameterization (current-parameterization))
|
(define saved-parameterization (current-parameterization))
|
||||||
(define graph-pb (new graph-pasteboard% [layout layout] [edge-label-font edge-label-font]))
|
(define graph-pb (new graph-pasteboard% [layout layout] [edge-label-font edge-label-font]))
|
||||||
|
(define user-char-width (initial-char-width))
|
||||||
(define f (instantiate red-sem-frame% ()
|
(define f (instantiate red-sem-frame% ()
|
||||||
(label "PLT Redex Reduction Graph")
|
(label "PLT Redex Reduction Graph")
|
||||||
(style '(toolbar-button))
|
(style '(toolbar-button))
|
||||||
|
@ -332,6 +333,7 @@
|
||||||
(dark-text-color) (light-text-color)
|
(dark-text-color) (light-text-color)
|
||||||
(dark-brush-color) (light-brush-color)))
|
(dark-brush-color) (light-brush-color)))
|
||||||
|
|
||||||
|
|
||||||
;; only changed on the reduction thread
|
;; only changed on the reduction thread
|
||||||
;; frontier : (listof (is-a?/c graph-editor-snip%))
|
;; frontier : (listof (is-a?/c graph-editor-snip%))
|
||||||
(define frontier
|
(define frontier
|
||||||
|
@ -339,9 +341,11 @@
|
||||||
(λ (x) x)
|
(λ (x) x)
|
||||||
(map (lambda (expr) (apply build-snip
|
(map (lambda (expr) (apply build-snip
|
||||||
snip-cache #f expr pred pp #f scheme-colors?
|
snip-cache #f expr pred pp #f scheme-colors?
|
||||||
|
(get-user-char-width user-char-width expr)
|
||||||
default-colors))
|
default-colors))
|
||||||
exprs)))
|
exprs)))
|
||||||
|
|
||||||
|
|
||||||
;; set-font-size : number -> void
|
;; set-font-size : number -> void
|
||||||
;; =eventspace main thread=
|
;; =eventspace main thread=
|
||||||
(define (set-font-size size)
|
(define (set-font-size size)
|
||||||
|
@ -408,6 +412,7 @@
|
||||||
light-pen-color)
|
light-pen-color)
|
||||||
(red->colors name)])
|
(red->colors name)])
|
||||||
(build-snip snip-cache snip sexp pred pp name scheme-colors?
|
(build-snip snip-cache snip sexp pred pp name scheme-colors?
|
||||||
|
(get-user-char-width user-char-width sexp)
|
||||||
light-arrow-color dark-arrow-color dark-label-color light-label-color
|
light-arrow-color dark-arrow-color dark-label-color light-label-color
|
||||||
dark-pen-color light-pen-color)))))))
|
dark-pen-color light-pen-color)))))))
|
||||||
(apply-reduction-relation/tag-with-names reductions (send snip get-expr))))]
|
(apply-reduction-relation/tag-with-names reductions (send snip get-expr))))]
|
||||||
|
@ -719,12 +724,13 @@
|
||||||
;; sexp -> boolean
|
;; sexp -> boolean
|
||||||
;; (any port number -> void)
|
;; (any port number -> void)
|
||||||
;; (union #f string)
|
;; (union #f string)
|
||||||
|
;; number
|
||||||
;; color^6
|
;; color^6
|
||||||
;; -> (union #f (is-a?/c graph-editor-snip%))
|
;; -> (union #f (is-a?/c graph-editor-snip%))
|
||||||
;; returns #f if a snip corresponding to the expr has already been created.
|
;; returns #f if a snip corresponding to the expr has already been created.
|
||||||
;; also adds in the links to the parent snip
|
;; also adds in the links to the parent snip
|
||||||
;; =eventspace main thread=
|
;; =eventspace main thread=
|
||||||
(define (build-snip cache parent-snip expr pred pp name scheme-colors?
|
(define (build-snip cache parent-snip expr pred pp name scheme-colors? cw
|
||||||
light-arrow-color dark-arrow-color dark-label-color light-label-color
|
light-arrow-color dark-arrow-color dark-label-color light-label-color
|
||||||
dark-brush-color light-brush-color)
|
dark-brush-color light-brush-color)
|
||||||
(let-values ([(snip new?)
|
(let-values ([(snip new?)
|
||||||
|
@ -733,7 +739,7 @@
|
||||||
cache
|
cache
|
||||||
expr
|
expr
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(let ([new-snip (make-snip parent-snip expr pred pp scheme-colors?)])
|
(let ([new-snip (make-snip parent-snip expr pred pp scheme-colors? cw)])
|
||||||
(hash-set! cache expr new-snip)
|
(hash-set! cache expr new-snip)
|
||||||
(k new-snip #t))))
|
(k new-snip #t))))
|
||||||
#f))])
|
#f))])
|
||||||
|
@ -775,13 +781,15 @@
|
||||||
;; sexp
|
;; sexp
|
||||||
;; sexp -> boolean
|
;; sexp -> boolean
|
||||||
;; (any port number -> void)
|
;; (any port number -> void)
|
||||||
|
;; boolean
|
||||||
|
;; number
|
||||||
;; -> (is-a?/c graph-editor-snip%)
|
;; -> (is-a?/c graph-editor-snip%)
|
||||||
;; unconditionally creates a new graph-editor-snip
|
;; unconditionally creates a new graph-editor-snip
|
||||||
;; =eventspace main thread=
|
;; =eventspace main thread=
|
||||||
(define (make-snip parent-snip expr pred pp scheme-colors?)
|
(define (make-snip parent-snip expr pred pp scheme-colors? cw)
|
||||||
(let* ([text (new program-text%)]
|
(let* ([text (new program-text%)]
|
||||||
[es (instantiate graph-editor-snip% ()
|
[es (instantiate graph-editor-snip% ()
|
||||||
(char-width (initial-char-width))
|
(char-width cw)
|
||||||
(editor text)
|
(editor text)
|
||||||
(my-eventspace (current-eventspace))
|
(my-eventspace (current-eventspace))
|
||||||
(pp pp)
|
(pp pp)
|
||||||
|
|
|
@ -1367,11 +1367,15 @@ A parameter that controls the initial font size for the terms shown
|
||||||
in the GUI window.
|
in the GUI window.
|
||||||
}
|
}
|
||||||
|
|
||||||
@defparam[initial-char-width width number?]{
|
@defparam[initial-char-width width (or/c number? (-> any/c number?))]{
|
||||||
|
|
||||||
A parameter that determines the initial width of the boxes
|
A parameter that determines the initial width of the boxes
|
||||||
where terms are displayed (measured in characters) for both
|
where terms are displayed (measured in characters) for both
|
||||||
the stepper and traces.
|
the stepper and traces.
|
||||||
|
|
||||||
|
If its value is a number, then the number is used as the width for
|
||||||
|
every term. If its value is a function, then the function is called
|
||||||
|
with each term and the resulting number is used as the width.
|
||||||
}
|
}
|
||||||
|
|
||||||
@deftogether[[
|
@deftogether[[
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
v4.1.4
|
||||||
|
|
||||||
|
- initial-char-width now accepts functions to give finer grained
|
||||||
|
control of the initial widths of the terms.
|
||||||
|
|
||||||
v4.1.3
|
v4.1.3
|
||||||
|
|
||||||
* added redex-check, a tool for automatically generating test cases
|
* added redex-check, a tool for automatically generating test cases
|
||||||
|
|
Loading…
Reference in New Issue
Block a user