
I'm using the latest Haddock release (0.4) and seem to be having a lot of trouble getting line breaks to appear in code blocks. I've tried it so many ways that if I were to enumerate them all this would be a very long email. I can't find any consistency in when it decides to work (occasionally) and when it doesn't (usually). Here's some examples..
This gives no line breaks: {-$CStuff @ test f [] = 0 test f (x:xs) = 0 @ -}
Neither does this: {-$CStuff
test f [] = 0 test f (x:xs) = 0 -}
This is a result of the fact that Haddock removes the <p>..</p> around single paragraphs to eliminate extra whitespace around short documentation comments. In the same vein it turns a single code paragraph, normally <pre>..</pre>, into <tt>..</tt>, which has the side effect of removing line breaks. On reflection that seems to be the wrong thing to do, so I'll change the behaviour for the next release.
This gives a parse error:-( {-$CStuff @ test f [] = 0 test f (x:xs) = 0 @
test f [] = 0 test f (x:xs) = 0 -}
because there's no paragraph break between these paragraphs. A paragraph break is two consecutive newlines.
This doesn't, but still no line breaks. {-$CStuff
test f [] = 0 test f (x:xs) = 0 @ test f [] = 0 test f (x:xs) = 0 @ -}
That's a bug (one that I'm aware of). I'm planning to rewrite Haddock's lexer using Alex and get rid of this strange behaviour at the same time.
This gives me line breaks at the end of each birdtracked line (only). {-$CStuff
test f [] = 0 test f (x:xs) = 0
@ test f [] = 0 test f (x:xs) = 0 @ -}
Urk, that's just a bug. Thanks! Cheers, Simon
participants (1)
-
Simon Marlow