diff options
author | David Waern <david.waern@gmail.com> | 2007-11-12 01:31:43 +0000 |
---|---|---|
committer | David Waern <david.waern@gmail.com> | 2007-11-12 01:31:43 +0000 |
commit | 2b32fbd087d2439238ef225f05f50822d04a6060 (patch) | |
tree | 181ee9a849ae4b8ac0c9f352d56f57e50a8bf654 /compiler/hsSyn/HsDoc.hs | |
parent | f32eaf3f5bfe40f79ecaf75ec770be48ef49b7e6 (diff) | |
download | haskell-2b32fbd087d2439238ef225f05f50822d04a6060.tar.gz |
Merge of a patch from the old Haddock branch:
Fri Jan 5 12:13:41 CET 2007 Simon Marlow <simonmar@microsoft.com>
* Fix up a case of extra vertical space after a code block
Please merge this to the 6.8.2 branch
Diffstat (limited to 'compiler/hsSyn/HsDoc.hs')
-rw-r--r-- | compiler/hsSyn/HsDoc.hs | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/compiler/hsSyn/HsDoc.hs b/compiler/hsSyn/HsDoc.hs index 0665e9d8b6..c71f58b3fc 100644 --- a/compiler/hsSyn/HsDoc.hs +++ b/compiler/hsSyn/HsDoc.hs @@ -68,16 +68,34 @@ docAppend d1 d2 -- is a DocMonospaced and make it into a DocCodeBlock docParagraph :: HsDoc id -> HsDoc id docParagraph (DocMonospaced p) - = DocCodeBlock p + = DocCodeBlock (docCodeBlock p) docParagraph (DocAppend (DocString s1) (DocMonospaced p)) | all isSpace s1 - = DocCodeBlock p + = DocCodeBlock (docCodeBlock p) docParagraph (DocAppend (DocString s1) (DocAppend (DocMonospaced p) (DocString s2))) | all isSpace s1 && all isSpace s2 - = DocCodeBlock p + = DocCodeBlock (docCodeBlock p) docParagraph (DocAppend (DocMonospaced p) (DocString s2)) | all isSpace s2 - = DocCodeBlock p + = DocCodeBlock (docCodeBlock p) docParagraph p = DocParagraph p + + +-- Drop trailing whitespace from @..@ code blocks. Otherwise this: +-- +-- -- @ +-- -- foo +-- -- @ +-- +-- turns into (DocCodeBlock "\nfoo\n ") which when rendered in HTML +-- gives an extra vertical space after the code block. The single space +-- on the final line seems to trigger the extra vertical space. +-- +docCodeBlock :: HsDoc id -> HsDoc id +docCodeBlock (DocString s) + = DocString (reverse $ dropWhile (`elem` " \t") $ reverse s) +docCodeBlock (DocAppend l r) + = DocAppend l (docCodeBlock r) +docCodeBlock d = d |