
On Tue, Aug 26, 2003 at 02:00:32PM +0200, Per Larsson wrote:
I have problems finding a pleasing indentation style for haskell code. Especially nested do-blocks have a tendency to run away to the right margin. When looking on source code from experienced haskell programmers, there seems not to be any consensus at all, everyone uses their own convention and in many cases one changes style in the same module.
Also, the automatic tools are problematic: the emacs mode I'm using bails out in certain contexts and there are few user customizations available. The haskell-src module in the GHC library offers a parser and pretty-printer for haskell code with nice options for customizing the indentation, but it can't handle comments which is a problem if you want to use it as a basis for implementing a indentation tool.
Is there anyone who have given this some thought and have some suggestions for a consistent indentation style and/or desktop tools which I'm not aware of?
I highly recommend the always-enter model. which means when you are using layout you always do a linebreak after any block forming construct (do, let, while, ...) and indent one more softtab level than the surrounding code. this has a number of advantages: * no need for special modes or editor support * indents are always an integral number of softtabs. * code doesn't run off the right side of the screen since your indentation level is relative to the start of the line, not the expression that started it. * cut-n-paste of code blocks is easier. examples of what I mean can be seen here: http://repetae.net/john/computer/haskell/ I have known several people to get turned off of haskell when trying to recreate the indent style usually found in publications by hand... John -- --------------------------------------------------------------------------- John Meacham - California Institute of Technology, Alum. - john@foo.net ---------------------------------------------------------------------------