{"size": 1793, "ext": "scrbl", "max_stars_repo_path": "gui-doc/mrlib/scribblings/interactive-value-port.scrbl", "max_stars_repo_name": "jjsimpso/gui", "max_stars_repo_stars_event_min_datetime": "2015-03-17T22:11:52.000Z", "max_stars_repo_stars_event_max_datetime": "2022-03-12T15:09:34.000Z", "max_issues_repo_path": "gui-doc/mrlib/scribblings/interactive-value-port.scrbl", "max_issues_repo_name": "jjsimpso/gui", "max_issues_repo_issues_event_min_datetime": "2015-01-09T15:53:25.000Z", "max_issues_repo_issues_event_max_datetime": "2022-03-31T16:21:29.000Z", "max_forks_repo_path": "gui-doc/mrlib/scribblings/interactive-value-port.scrbl", "max_forks_repo_name": "jjsimpso/gui", "max_forks_repo_forks_event_min_datetime": "2015-01-08T13:03:07.000Z", "max_forks_repo_forks_event_max_datetime": "2022-03-26T21:49:09.000Z"}
{"max_stars_count": 65, "max_issues_count": 231, "max_forks_count": 89, "avg_line_length": 30.3898305085, "max_line_length": 78, "alphanum_fraction": 0.667038483}
#lang scribble/doc
@(require "common.rkt" (for-label mrlib/interactive-value-port scheme/pretty))

@title{Interactive Value Port}

@defmodule[mrlib/interactive-value-port]


@defproc[(set-interactive-display-handler
          [port output-port?]
          [#:snip-handler snip-handler
           (or/c #f (-> (is-a?/c snip%) output-port? any))
           #f])
         void?]{

 Sets @racket[port]'s display handler (via
 @racket[port-display-handler]) so that when it encounters
 these values:
 @itemize[@item{syntax objects}
          @item{snips}]

 it uses @racket[write-special] to send snips to the port
 and uses @racketmodname[mrlib/syntax-browser] to turn
 syntax object into snips and then uses
 @racket[write-special] with the result to send it to the
 port. Otherwise, it behaves like the default handler.

 If @racket[snip-handler] is not @racket[#f], then
 @racket[set-interactive-display-handler] passes any snips
 to it (not those it creates by
 @racketmodname[mrlib/syntax-browser]) instead of calling 
 @racket[write-special].

 To show values embedded in lists and other compound object,
 it uses @racket[pretty-display].
}


@defproc[(set-interactive-write-handler
          [port output-port?]
          [#:snip-handler snip-handler
           (or/c #f (-> (is-a?/c snip%) output-port? any))
           #f])
         void?]{

Like @racket[set-interactive-display-handler], but sets the
@racket[port-write-handler] and uses @racket[pretty-write].}


@defproc[(set-interactive-print-handler
          [port output-port?]
          [#:snip-handler snip-handler
           (or/c #f (-> (is-a?/c snip%) output-port? any))
           #f])
         void?]{

Like @racket[set-interactive-display-handler], but sets the
@racket[port-print-handler] and uses @racket[pretty-print].}
