|(define-code id typeset-expr)|
|(define-code id typeset-expr uncode-id)|
|(define-code id typeset-expr uncode-id d->s-expr)|
|(define-code id typeset-expr uncode-id d->s-expr stx-prop-expr)|
The supplied typeset-expr expression should produce a procedure that performs the actual typesetting. This expression is normally to-element or to-paragraph. The argument supplied to typeset-expr is normally a syntax object, but more generally it is the result of applying d->s-expr.
The optional uncode-id specifies the escape from literal code to be recognized by id. The default is unsyntax.
The optional d->s-expr should produce a procedure that accepts three arguments suitable for datum->syntax: a syntax object or #f, an arbitrary value, and a vector for a source location. The result should record as much or as little of the argument information as needed by typeset-expr to typeset the code. Normally, d->s-expr is datum->syntax.
The stx-prop-expr should produce a procedure for recording a 'paren-shape property when the source expression uses with id has such a property. The default is syntax-property.
Identifiers that have for-label bindings are typeset and hyperlinked based on definitions declared elsewhere (via defproc, defform, etc.). The identifiers code:line, code:comment, code:blank, code:hilite, and code:quote are handled as in racketblock, as are identifiers that start with _.
In addition, the given v can contain var-id, shaped-parens, just-context, or literal-syntax structures to be typeset specially (see each structure type for details), or it can contain element structures that are used directly in the output.
If expr? is true, then v is rendered in expression style, much like print with the print-as-expression parameter set to #t. In that case, for-label bindings on identifiers are ignored, since the identifiers are all quoted in the output. Typically, expr? is set to true for printing result values.
|prefix1 : any/c|
|prefix : any/c|
|suffix : any/c|
|expr? : any/c = #f|
|v : any/c|
|val : any/c|
|shape : char?|
|val : any/c|
|context : syntax?|