logo       

Re: indenting code: msg#00078

lang.smalltalk.squeak.beginners

Subject: Re: indenting code

Hi Norbert,

Hi,

I'm asking myself if there is any common sense about
how to indent the code in smalltalk/squeak.

Most of the time I see something like

statement do: [ :parameter |
otherStatement selector: [
mostinnerstatement ] ].

or

statement do: [ :parameter | otherStatement ].

Kent Beck's "Smalltalk Best Practice Patterns" has a good section on this. He presents ten simple patterns to drive the formatting of Smalltalk code.

The book is a bit older now - it dates from 1997 - but might not be too hard to find. I think our local library system (here in Columbus, OH) even had a copy.

Beck's Indented Control Flow pattern says,

Put zero or one argument messages on the same lines as their receiver.
For messages with two or more keywords put each keyword/argument
pair on its own line, indented one tab.

So, you would say

limit := myList size.

or

larger := firstCount max: secondCount.

but

inRange := amount
between: low
and: high.

He also has patterns that describe how to format conditionals, blocks, etc. The rest of the book is good too - it has advice about other parts of Smalltalk usage.

As others have said, of course the most important thing is to pick a style that works well and use it consistently. I like Beck's style, but as you have seen, there are other good ones in use.

Benjamin Schroeder


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise