I also code in the same way as Sven’s example. For more advanced things, why 
not to have:

self xxx
   ifTrue:
      [ self bla.
        self foo

or

self xxx
   ifTrue: [ self bla.
             self foo

this are the interesting things to me. I guess I should read Kent Beck's 
formatting rules :) but one more thing that I like to have is

anObject
           a: param1;
   cascading: param2;
     message: param3;
   formatted: param4

Although there are some issues around it.

Uko

> On 03 Sep 2015, at 07:29, Sven Van Caekenberghe <[email protected]> wrote:
> 
> And what happened to the plain normal (in my mind/experience) ?
> 
> self xxx
>    ifTrue: [
>        self bla.
>        self foo ].
> 
> I would say that is the most common one I've seen in the image. And it is how 
> the old formatter worked.
> 
>> On 03 Sep 2015, at 03:39, Eliot Miranda <[email protected]> wrote:
>> 
>> Hi Ben,
>> 
>>   have you read Kent Beck's formatting rules?  I wish we would adhere to 
>> these in our formatters.  And I wish he would put the formatting rules in 
>> the public domain on the web (Kent?).  He actually justifies the rules he 
>> chooses; they're not just personal preferences.  And IMO they produce 
>> eleant, readable Smalltalk.  I have to say your block formatting below is 
>> horrible.  Blocks are blocks.  [ & ] are /not/ the same as { & } in C.  
>> [...] define an *object*, not merely delimit syntax.  As such any good 
>> Smalltalk format will emphasize the objectness of blocks.  And IMNERHO that 
>> is to make them rectangles as in
>> 
>>    self ifIWantedYouToWriteC ifTrue:
>>        [self useABloodyCCompiler.
>>         self useCCMinusPToMakeSenseOfTheDamageDoneByTheCPreProcessor]
>> 
>> 
>> On Wed, Sep 2, 2015 at 6:23 PM, Ben Coman <[email protected]> wrote:
>> On Thu, Sep 3, 2015 at 2:28 AM, stepharo <[email protected]> wrote:
>>> 
>>> I do not really like all the formattings of kent. Because sometimes it just
>>> does not work.
>>> But this is why we ask franck (an interns to start to have a look).
>>> 
>>> For example I do not like
>>> 
>>>    self xxx
>>>        ifTrue:
>>>            [
>>>            self bla
>>>            self foo.
>> 
>> Agreed. Unneccessary waste of a line.
>> 
>>> in the current default formatter.
>>>    and I prefer
>>> 
>>>    self xxx
>>>        ifTrue: [ self bla.
>>>               self foo
>>> But here the problem is that the  self foo     is not tab aligned because
>>> ifTrue: [
>>> 
>>>    self xxx
>>>        ifTrue:
>>>            [ self bla.
>>>            self foo
>>> So may be this one is a nice compromise
>> 
>> Not quite there. The "self bla" is still not actually vertically aligned.
>> 
>>> I think that we should change some settings. In fact in alpha things are
>>> there to evolve until the release :)
>> 
>> I like...
>>    self xxx
>>        ifTrue:
>>        [    self bla.
>>             self foo.
>>        ].
>> 
>> for three reasons:
>>    * the first statement of the block is vertically aligned with the rest
>>    * vertical alignment of paired brackets makes visual matching *simple*
>>    * the vertical whitespace enforced by the closing bracket on its
>> own visually groups blocks.
>> 
>> Now some people don't like the closing brace on its own because they
>> prefer code density. So maybe this...
>> 
>>    self xxx
>>       ifTrue:
>>       [   self bla.
>>           self foo. ]
>>       ifFalse:
>>       [   self baa.
>>           self moo. ].
>> 
>> But still I prefer...
>> 
>>    self xxx
>>       ifTrue:
>>       [   self bla.
>>           self foo.
>>       ]
>>       ifFalse:
>>       [   self baa.
>>           self moo.
>>       ].
>> 
>> cheers -ben
>> 
>> 
>> 
>> 
>> -- 
>> _,,,^..^,,,_
>> best, Eliot
> 
> 

Reply via email to