diff --git a/data/15-regressions.blt b/data/15-regressions.blt index d593331..d698f86 100644 --- a/data/15-regressions.blt +++ b/data/15-regressions.blt @@ -306,15 +306,14 @@ parserCompactLocation = [ try $ [ ParseRelAbs (Text.Read.read digits) _ _ | digits <- many1 digit - , rel1 :: Maybe (Either Int (Ratio Int)) <- - optionMaybe - [ case divPart of - Nothing -> Left $ Text.Read.read digits - Just ddigits -> - Right $ Text.Read.read digits % Text.Read.read ddigits - | digits <- many1 digit - , divPart <- optionMaybe (string "/" *> many1 digit) - ] + , rel1 :: Maybe (Either Int (Ratio Int)) <- optionMaybe + [ case divPart of + Nothing -> Left $ Text.Read.read digits + Just ddigits -> + Right $ Text.Read.read digits % Text.Read.read ddigits + | digits <- many1 digit + , divPart <- optionMaybe (string "/" *> many1 digit) + ] ] ] @@ -938,3 +937,22 @@ tzejubuVxairoy -- foo bar => CUR.Ozuzcak zub -> m () + +#test allow par-spacing for HsApp HsDo +func = other $ meep + do + abc + def + (some other very long linnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnne) + +#test allow par-spacing for HsApp HsDo +func = other $ meep + [ x | x <- myList ] + (some other very long linnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnne) + +#test allow par-spacing for HsApp HsSpliceE +{-# LANGUAGE QuasiQuotes #-} +func = other $ meep + [q|hello + world|] + (some other very long linnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnne) diff --git a/data/30-tests-context-free.blt b/data/30-tests-context-free.blt index bbed630..36aaf62 100644 --- a/data/30-tests-context-free.blt +++ b/data/30-tests-context-free.blt @@ -1252,15 +1252,14 @@ parserCompactLocation = [ try $ [ ParseRelAbs (Text.Read.read digits) _ _ | digits <- many1 digit - , rel1 :: Maybe (Either Int (Ratio Int)) <- - optionMaybe - [ case divPart of - Nothing -> Left $ Text.Read.read digits - Just ddigits -> - Right $ Text.Read.read digits % Text.Read.read ddigits - | digits <- many1 digit - , divPart <- optionMaybe (string "/" *> many1 digit) - ] + , rel1 :: Maybe (Either Int (Ratio Int)) <- optionMaybe + [ case divPart of + Nothing -> Left $ Text.Read.read digits + Just ddigits -> + Right $ Text.Read.read digits % Text.Read.read ddigits + | digits <- many1 digit + , divPart <- optionMaybe (string "/" *> many1 digit) + ] ] ] diff --git a/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs b/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs index 9d2b5fd..e8d3ff0 100644 --- a/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs +++ b/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs @@ -194,6 +194,8 @@ layoutExpr lexpr@(L _ expr) = do (_, L _ ExplicitTuple{}) -> True (_, L _ ExplicitList{}) -> True (_, L _ HsPar{}) -> True + (_, L _ HsDo{}) -> True + (_, L _ HsSpliceE{}) -> True _ -> False let wrap = if all checkAllowPar paramEs then docSetParSpacing else id wrap $ docAddBaseY BrIndentRegular $ docPar