summaryrefslogtreecommitdiff
path: root/compiler/hsSyn/HsDoc.hs
diff options
context:
space:
mode:
authorDavid Waern <david.waern@gmail.com>2007-11-12 01:31:43 +0000
committerDavid Waern <david.waern@gmail.com>2007-11-12 01:31:43 +0000
commit2b32fbd087d2439238ef225f05f50822d04a6060 (patch)
tree181ee9a849ae4b8ac0c9f352d56f57e50a8bf654 /compiler/hsSyn/HsDoc.hs
parentf32eaf3f5bfe40f79ecaf75ec770be48ef49b7e6 (diff)
downloadhaskell-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.hs26
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