Strip leading whitespace (#1270)

Fixes #1267.
This commit is contained in:
Simon Jakobi 2019-09-05 08:08:15 +02:00 committed by mergify[bot]
parent 141bd8d6f4
commit 0ebf705a75
4 changed files with 14 additions and 3 deletions

View File

@ -26,6 +26,7 @@ import Dhall.Core
import Dhall.Src (Src(..))
import Prelude hiding (const, pi)
import qualified Data.Char
import qualified Data.Text
import qualified Text.Megaparsec
@ -89,7 +90,7 @@ exprAndHeaderFromText
-> Either ParseError (Text, Expr Src Import)
exprAndHeaderFromText delta text = case result of
Left errInfo -> Left (ParseError { unwrap = errInfo, input = text })
Right (txt, r) -> Right (Data.Text.dropWhileEnd (/= '\n') txt, r)
Right (txt, r) -> Right (stripHeader txt, r)
where
parser = do
(bytes, _) <- Text.Megaparsec.match whitespace
@ -98,3 +99,5 @@ exprAndHeaderFromText delta text = case result of
return (bytes, r)
result = Text.Megaparsec.parse (unParser parser) delta text
stripHeader = Data.Text.dropWhile Data.Char.isSpace . Data.Text.dropWhileEnd (/= '\n')

View File

@ -51,9 +51,10 @@ formatTest characterSet prefix =
inputText <- Text.IO.readFile inputFile
expr <- Core.throws (Parser.exprFromText mempty inputText)
(header, expr) <- Core.throws (Parser.exprAndHeaderFromText mempty inputText)
let doc = Pretty.prettyCharacterSet characterSet expr
let doc = Doc.pretty header
<> Pretty.prettyCharacterSet characterSet expr
let docStream = Doc.layoutSmart Pretty.layoutOpts doc
let actualText = Doc.Render.Text.renderStrict docStream

View File

@ -0,0 +1,4 @@
{- bla -}
True

View File

@ -0,0 +1,3 @@
{- bla -}
True