I forget the details, but maybe try to call the default pretty-print-print-line and add your own output there instead?
Robby On Mon, Jan 6, 2014 at 2:45 PM, Asumu Takikawa <[email protected]> wrote: > Hi all, > > Does anyone know an easy way to add extra indentation to pretty printed > output using racket/pretty? > > For example, suppose I want to add pretty printed output after part of > an error message like: > > expected: (<pretty printed value> > <should be aligned like this>) > > I would want any linebreak-separated portions to align with the first > line with "expected:". > > So far, I've tried using the `pretty-print-print-line` parameter to add > some extra indentation, but it doesn't work like I expect. For example: > > #lang racket > > ;; how much extra indentation to add > (define indent 2) > > ;; to parameterize `pretty-print-print-line` > (define (print-line line-num out old-line-length cols) > (cond [(and line-num > (not (= line-num 0)) > (not (eq? cols 'infinity))) > (newline out) > ;; these two lines differ from the default > (display (make-string indent #\space) out) > ;; changing this to `indent` has weird behavior > 0] > [else 0])) > > (parameterize ([pretty-print-print-line print-line]) > (display " ") > (pretty-display > '(λ (x y z) > (aaaaaaaa bbbbbbbbbbbbbb cccccccccccccc ddddddddd eeeeeeee > ffffffff ggggggg hhhhhhh))) > (newline) > (display " ") > (pretty-display > '(some-other-identifier (x y z) > (aaaaaaaa bbbbbbbbbbbbbb cccccccccccccc ddddddddd eeeeeeee > ffffffff ggggggg hhhhhhh))) > (newline)) > > The output I'd like to get is (indentation significant): > > (lambda (x y z) > (aaaaaaaa > bbbbbbbbbbbbbb > cccccccccccccc > ddddddddd > eeeeeeee > ffffffff > ggggggg > hhhhhhh)) > (some-other-identifier > (x y z) > (aaaaaaaa > bbbbbbbbbbbbbb > cccccccccccccc > ddddddddd > eeeeeeee > ffffffff > ggggggg > hhhhhhh)) > > but I get: > > (lambda (x y z) > (aaaaaaaa > bbbbbbbbbbbbbb > cccccccccccccc > ddddddddd > eeeeeeee > ffffffff > ggggggg > hhhhhhh)) > (some-other-identifier > (x y z) > (aaaaaaaa > bbbbbbbbbbbbbb > cccccccccccccc > ddddddddd > eeeeeeee > ffffffff > ggggggg > hhhhhhh)) > > Any idea what I'm doing wrong? There seems to be some extra indentation > added to the output in the inner expression. Am I missing some obvious > easy method to do this? > > Cheers, > Asumu > ____________________ > Racket Users list: > http://lists.racket-lang.org/users >
____________________ Racket Users list: http://lists.racket-lang.org/users

