Newsgroups: comp.lang.smalltalk
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!newsfeed.pitt.edu!godot.cc.duq.edu!newsgate.duke.edu!news.mathworks.com!newsfeed.internetmci.com!in2.uu.net!news.maz.net!ins.net!heeg.de!gustav!hmm
From: hmm@gustav (Hans-Martin Mosner)
Subject: Re: [VW2.5] Improved formatting 1
Message-ID: <Ds5upx.17t@heeg.de>
Sender: uucp@heeg.de
Organization: Georg Heeg Objektorientierte Systeme, Dortmund, FRG
X-Newsreader: TIN [version 1.2 PL2]
References: <4ofkh3$qps@freeside.cls.de>
Date: Wed, 29 May 1996 09:37:09 GMT
Lines: 38

Stefan Matthias Aust (sma@kiel.netsurf.de) wrote:
: The VW2.5 formatter has no idea how to format cascades nicely. The
: following patch will indent cascades of more three or more messages as
: follows and also removes the surplus parenthesis.

Nice, except... it removes not only surplus but also necessary
parentheses.  The precedence of expressions is crucial.
I have modified the method a little to give correct results
even when the receiver in the cascade is an assignment or
a keyword message.

Hans-Martin

'From VisualWorks(R), Release 2.5.1 of September 26, 1995 on May 29, 1996 at 11:16:42 am'!



!CascadeNode methodsFor: 'printing'!

printOn: aStream indent: level 
	| separateLine |
	receiver printOn: aStream indent: level precedence: 3.
	separateLine := messages size > 2.
	1 to: messages size
		do: 
			[:i | 
			separateLine ifTrue: [aStream crtab: level + 1].
			(messages at: i)
				printMessageOn: aStream indent: (separateLine
					ifTrue: [level + 1]
					ifFalse: [level]).
			i < messages size ifTrue: [aStream nextPut: $;]]! !

--
+--- Hans-Martin Mosner -------- Senior Smalltalk Guru ---+
| These opinions are entirely ficticious.  Any similarity |
| to real opinions is purely coincidental and unintended. |
+--- <hmm@heeg.de> ------ URL:http://www.heeg.de/~hmm/ ---+
