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. - [EMAIL PROTECTED] --------------------------------------------------------------------------- _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe
