About Compiler-cmm.131

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

About Compiler-cmm.131

Chris Muller-4
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

Reply | Threaded
Open this post in threaded view
|

Re: About Compiler-cmm.131

Juan Vuletich-4
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

Reply | Threaded
Open this post in threaded view
|

Re: About Compiler-cmm.131

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

On Wed, Mar 3, 2010 at 6:32 AM, Juan Vuletich <[hidden email]> 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
>
>

Reply | Threaded
Open this post in threaded view
|

Re: About Compiler-cmm.131

Juan Vuletich-4
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 <[hidden email]> 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
>>
>>
>>    


Reply | Threaded
Open this post in threaded view
|

Re: About Compiler-cmm.131

Chris Muller-3
I saw them, I just thought it would be easier to merge/compare your
changes (and maintain your initials) via MC rather than
cut-and-paste..

I'll check them out..

On Wed, Mar 3, 2010 at 10:21 AM, Juan Vuletich <[hidden email]> wrote:

> 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 <[hidden email]> 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
>>>
>>>
>>>
>
>
>