From f54e3c6079727c9351ac1d0fa639eb5ed50f161a Mon Sep 17 00:00:00 2001 From: Lennart Spitzner Date: Sat, 6 Aug 2016 14:07:52 +0200 Subject: [PATCH] Some layouting improvements/fixes --- src/Language/Haskell/Brittany/Layouters/Expr.hs | 16 ++++++++-------- src/Language/Haskell/Brittany/Layouters/Stmt.hs | 16 +++++++++++++--- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/Language/Haskell/Brittany/Layouters/Expr.hs b/src/Language/Haskell/Brittany/Layouters/Expr.hs index 4509be6..bae34d7 100644 --- a/src/Language/Haskell/Brittany/Layouters/Expr.hs +++ b/src/Language/Haskell/Brittany/Layouters/Expr.hs @@ -577,7 +577,7 @@ layoutExpr lexpr@(L _ expr) = docWrapNode lexpr $ case expr of e1Doc <- docSharedWrapper layoutExpr e1 docSeq [ docLit $ Text.pack "[" - , docForceSingleline e1Doc + , appSep $ docForceSingleline e1Doc , docLit $ Text.pack "..]" ] FromThen e1 e2 -> do @@ -586,8 +586,8 @@ layoutExpr lexpr@(L _ expr) = docWrapNode lexpr $ case expr of docSeq [ docLit $ Text.pack "[" , docForceSingleline e1Doc - , docLit $ Text.pack "," - , docForceSingleline e2Doc + , appSep $ docLit $ Text.pack "," + , appSep $ docForceSingleline e2Doc , docLit $ Text.pack "..]" ] FromTo e1 eN -> do @@ -595,8 +595,8 @@ layoutExpr lexpr@(L _ expr) = docWrapNode lexpr $ case expr of eNDoc <- docSharedWrapper layoutExpr eN docSeq [ docLit $ Text.pack "[" - , docForceSingleline e1Doc - , docLit $ Text.pack ".." + , appSep $ docForceSingleline e1Doc + , appSep $ docLit $ Text.pack ".." , docForceSingleline eNDoc , docLit $ Text.pack "]" ] @@ -607,9 +607,9 @@ layoutExpr lexpr@(L _ expr) = docWrapNode lexpr $ case expr of docSeq [ docLit $ Text.pack "[" , docForceSingleline e1Doc - , docLit $ Text.pack "," - , docForceSingleline e2Doc - , docLit $ Text.pack ".." + , appSep $ docLit $ Text.pack "," + , appSep $ docForceSingleline e2Doc + , appSep $ docLit $ Text.pack ".." , docForceSingleline eNDoc , docLit $ Text.pack "]" ] diff --git a/src/Language/Haskell/Brittany/Layouters/Stmt.hs b/src/Language/Haskell/Brittany/Layouters/Stmt.hs index 6937ba3..f5c2815 100644 --- a/src/Language/Haskell/Brittany/Layouters/Stmt.hs +++ b/src/Language/Haskell/Brittany/Layouters/Stmt.hs @@ -33,8 +33,18 @@ layoutStmt lstmt@(L _ stmt) = docWrapNode lstmt $ case stmt of BindStmt lPat expr _ _ _ -> do patDoc <- docSharedWrapper layoutPat lPat expDoc <- docSharedWrapper layoutExpr expr - docCols ColBindStmt - [appSep patDoc, docSeq [appSep $ docLit $ Text.pack "<-", expDoc]] + docAlt + [ docCols ColBindStmt + [ appSep patDoc + , docSeq [appSep $ docLit $ Text.pack "<-", docForceParSpacing expDoc] + ] + , docCols ColBindStmt + [ appSep patDoc + , docAddBaseY BrIndentRegular + $ docPar (docLit $ Text.pack "<-") + (expDoc) + ] + ] LetStmt binds -> layoutLocalBinds binds >>= \case Nothing -> docLit $ Text.pack "let" -- i just tested @@ -55,7 +65,7 @@ layoutStmt lstmt@(L _ stmt) = docWrapNode lstmt $ case stmt of Just bindDocs@(bindDoc1:bindDocr) -> do -- TODO: the indentation here is screwed up. needs docSetIndentLevel and -- SetBaseY based layouting, not cols. - docAlt + docSetBaseY $ docAlt [ docLines $ (docCols ColDoLet [ appSep $ docLit $ Text.pack "let"