[squeak-dev] About Compiler-cmm.131

Juan Vuletich juan at jvuletich.org
Wed Mar 3 16:21:05 UTC 2010


Chris Muller wrote:
> Great so that's one vote for.  But I am not seeing your tweaks, did
> you update the inbox?
>
>   

They are right there in the body of the message. In case there's a 
problem with your mail client, see 
http://permalink.gmane.org/gmane.comp.lang.smalltalk.squeak.general/143213 .

Cheers,
Juan Vuletich

> On Wed, Mar 3, 2010 at 6:32 AM, Juan Vuletich <juan at jvuletich.org> wrote:
>   
>> Hi Chris,
>>
>> Chris Muller wrote:
>>     
>>> Hi, I've just posted refinements to the inbox for pretty-print to
>>> provide Rectangular Block and Indented Control Flow as suggested by
>>> Ward Cunningham at:
>>>
>>>        http://c2.com/ppr/formatting.html#2
>>>
>>> These formatting rules maximize readability while balancing screen
>>> space (and methods should be short anyway).  However, I did only push
>>> these to the inbox for now, due to the potentially combustible nature
>>> of this sort of change.
>>>
>>> Unless there are major objections, I'd like to copy these to the trunk
>>> so we can all enjoy gorgeous Rectangular Block formatting.
>>>
>>>  - Chris
>>>
>>>       
>> Thanks! I love it! I did a couple of tweaks I hope you'll like:
>>
>> 1) Separate lines for block
>>   a) if block has arguments (as if it had temps)
>>   b) if the single statement is complex (as if it had many statements)
>>
>> 2) Brace arrays formatted as rectangluar blocks
>>
>> !BlockNode methodsFor: 'printing' stamp: 'jmv 3/3/2010 09:09'!
>> printOn: aStream indent: level
>>   | separateLines |
>>   aStream
>>        nextPut:  $[ ;
>>        space.
>>   self
>>       printArgumentsOn:  aStream
>>       indent:  level.
>>   separateLines := (self
>>       printTemporaries: temporaries
>>       on:  aStream
>>       doPrior:  [ ] ) or: [ arguments size > 0 ].
>>   separateLines ifTrue:
>>       [ "If args+temps > 0 and statements > 1 (or just one complex
>> statement), put all statements on separate lines"
>>       (statements size >  1 or: [ statements size = 1 and: [statements first
>> isComplex]])
>>           ifTrue:  [ aStream crtab:  level ]
>>           ifFalse:  [ aStream space] ] .
>>   self
>>       printStatementsOn:  aStream
>>       indent:  level.
>>   aStream
>>        space ;
>>        nextPut:  $]! !
>>
>>
>> !BraceNode methodsFor: 'printing' stamp: 'jmv 3/3/2010 08:58'!
>> printOn: aStream indent: level
>>   aStream
>>        crtab: level+1.
>>   aStream nextPut: ${.
>>   1
>>       to: elements size
>>       do:
>>           [ : i |
>>           (elements at: i)
>>               printOn: aStream
>>               indent: level.
>>           i < elements size ifTrue:
>>               [ aStream
>>                    nextPutAll: '. ' ;
>>                    crtab: level+1 ] ].
>>   aStream nextPut: $}! !
>>
>> BTW, according to http://c2.com/ppr/formatting.html#2, the author is Kent
>> Beck.
>>
>> Cheers,
>> Juan Vuletich
>>
>>
>>     




More information about the Squeak-dev mailing list