Marco Baringer mb@bese.it writes:
i think swank-pprint should bind print-pretty to t, no matter what the value of *swank-pprint-pretty* is (it's called pprint after all).
I agree, *PRINT-PRETTY* should always be T in swank-pprint. But was is the meaning of *swank-pprint-pretty* then? Similar to *sldb-pprint-frames*?
i think it woud be quite fair to say that all slime output is controlled by one set of variables, if you want functions args to not be pprint'd it's reasonable to assume you wouldn't want anything else to be pprint'd either.
I think it is a nice feature when different commands can use different printer settings, e.g., setting *PRINT-PRETTY* to nil for bulk output (for efficiency) and to T for macro expansion commands sounds perfectly reasonable to me.
The come back to the arglist. When *PRINT-PRETTY* is t the arglist for
(defun foo (&optional (function #'identity)) ...)
is printed as
(foo &optional #'#'identity)
Not pretty :-) When *PRINT-PRETTY* is nil the result is
(foo &optional (function (function identity)))
Not perfect, but a bit better IMO.
Another issue are very long argument lists, e.g., for WRITE. With *PRINT-PRETTY* t the result is printed in multiple lines, which looks nicer in Emacs 21.
Could *print-pprint-dispatch* be used to suppress the conversion of (function ...) --> #'... ?
Helmut.