[Newbies] indenting code

Benjamin Schroeder benschroeder at acm.org
Wed Dec 13 14:09:08 UTC 2006

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.


	larger := firstCount max: secondCount.


	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

More information about the Beginners mailing list