From 83ba7803e681be3f1c56c853e7c40b3edf98f126 Mon Sep 17 00:00:00 2001 From: Lennart Spitzner Date: Wed, 17 May 2017 22:52:24 +0200 Subject: [PATCH] Fix layouting issues in lists/listcomprehension --- src-literatetests/tests.blt | 34 +++++++++++++++++++ .../Haskell/Brittany/Layouters/Expr.hs | 6 ++-- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src-literatetests/tests.blt b/src-literatetests/tests.blt index a9e7714..089d007 100644 --- a/src-literatetests/tests.blt +++ b/src-literatetests/tests.blt @@ -500,6 +500,24 @@ func = do stmt x +############################################################################### +############################################################################### +############################################################################### +#group expression.lists +############################################################################### +############################################################################### +############################################################################### + +#test monad-comprehension-case-of +func = + foooooo + $ [ case + foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo + of + _ -> True + ] + + ############################################################################### ############################################################################### ############################################################################### @@ -786,6 +804,22 @@ func (MyLongFoo abc def) = 1 func (Bar a d ) = 2 func _ = 3 +#test listcomprehension-case-of +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) + ] + ] + ] + ############################################################################### ############################################################################### diff --git a/src/Language/Haskell/Brittany/Layouters/Expr.hs b/src/Language/Haskell/Brittany/Layouters/Expr.hs index 98b9d03..fc63cfd 100644 --- a/src/Language/Haskell/Brittany/Layouters/Expr.hs +++ b/src/Language/Haskell/Brittany/Layouters/Expr.hs @@ -559,7 +559,8 @@ layoutExpr lexpr@(L _ expr) = docWrapNode lexpr $ case expr of start = docCols ColListComp [ docNodeAnnKW lexpr Nothing $ appSep $ docLit $ Text.pack "[" - , docNodeAnnKW lexpr (Just AnnOpenS) + , docSetBaseY + $ docNodeAnnKW lexpr (Just AnnOpenS) $ List.last stmtDocs ] (s1:sM) = List.init stmtDocs @@ -590,7 +591,8 @@ layoutExpr lexpr@(L _ expr) = docWrapNode lexpr $ case expr of , docSetBaseY $ docLines [ docSeq [ docLit $ Text.pack "[" - , docNodeAnnKW lexpr (Just AnnOpenS) $ docForceSingleline e + , docSeparator + , docSetBaseY $ docNodeAnnKW lexpr (Just AnnOpenS) $ e ] , docLit $ Text.pack "]" ]