aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>2014-01-29 20:37:10 +0000
committerHerbert Valerio Riedel <hvr@gnu.org>2014-01-30 17:22:34 +0100
commit7d2106e18f26a680d157ef943da2602e7199afa1 (patch)
treeac57544a578ef9d253ade557e9af083cd19fbdab
parentcf73b006faf95512b28c744ecfbdf47c044acb67 (diff)
Fix @ code blocks
In cases where we had some horizontal space before the closing ‘@’, the parser would not accept the block as a code block and we'd get ugly output.
-rw-r--r--src/Haddock/Parser.hs1
-rw-r--r--test/Haddock/ParserSpec.hs8
2 files changed, 9 insertions, 0 deletions
diff --git a/src/Haddock/Parser.hs b/src/Haddock/Parser.hs
index 6370eecb..e9bed2a5 100644
--- a/src/Haddock/Parser.hs
+++ b/src/Haddock/Parser.hs
@@ -365,6 +365,7 @@ codeblock d =
where
p isNewline c
| isNewline && c == '@' = Nothing
+ | isNewline && isSpace c = Just isNewline
| otherwise = Just $ c == '\n'
hyperlink :: Parser (Doc a)
diff --git a/test/Haddock/ParserSpec.hs b/test/Haddock/ParserSpec.hs
index 9bca745f..455a67f1 100644
--- a/test/Haddock/ParserSpec.hs
+++ b/test/Haddock/ParserSpec.hs
@@ -410,6 +410,14 @@ spec = before initStaticOpts $ do
, "@"
] `shouldParseTo` DocCodeBlock "foo\n@\nbar\n"
+ it "accepts horizontal space before the @" $ do
+ unlines [ " @"
+ , " foo"
+ , ""
+ , " bar"
+ , " @"
+ ] `shouldParseTo` DocCodeBlock " foo\n\n bar\n "
+
it "accepts unicode" $ do
"@foo 灼眼のシャナ bar@" `shouldParseTo` DocCodeBlock "foo 灼眼のシャナ bar"