[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

prettyprinting



    Is there some way to redirect PP's output?

Yes.  Call PRETTY-PRINT directly, giving it some stream as second argument.
Note that PP is defined approximately as follows:

(DEFINE (PP FORM)
  (FRESH-LINE STANDARD-OUTPUT)
  (PRETTY-PRINT (IF (NONVALUE? FORM) (NONVALUE->VALUE FORM) FORM)
		STANDARD-OUTPUT)
  (FRESH-LINE STANDARD-OUTPUT)
  T)

    Is there some way to change PP's left margin?

Yes, again by calling PRETTY-PRINT directly.  It uses the current horizontal
position as its left margin.

    What are the future plans for PP?

It has obviously been our (the implementors') position so far to provide
only the bare minimum in the way of a pretty-printer.  It seemed to us
not only that our effort was better spent elsewhere, but that in the best of
possible worlds text formatting, which is what pretty-printing is, after
all, should be done using an appropriate tool: a text formatting
system, such as an editor (which might or might not be written in Lisp).
Conventional pretty-printers have always seemed to us inappropriately
placed in the structure of a programming system, and modularity has
sufferred because the same functionality has to be duplicated in both
the editor and lisp i/o system.  The editor ought to be the SAME as the
i/o system, and the editor should know how to pretty-print.

I realize that this is not the best of possible worlds, and that someone
may want to implement an intermediate solution.  I encourage this and would
be glad to consult but have to say I have practically no interest in the
project at the current time.  The Waters printer (GPRINT) would probably
be a good place to start.