From 395fe026449ebb419e115a08584c20a55314f477 Mon Sep 17 00:00:00 2001 From: Lennart Spitzner Date: Fri, 2 Sep 2016 00:06:49 +0200 Subject: [PATCH] Stop aligning patterns for different functions --- src/Language/Haskell/Brittany/Layouters/Decl.hs | 14 +++++++------- src/Language/Haskell/Brittany/Layouters/Expr.hs | 2 +- src/Language/Haskell/Brittany/Types.hs | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Language/Haskell/Brittany/Layouters/Decl.hs b/src/Language/Haskell/Brittany/Layouters/Decl.hs index cf6adaa..2b68e20 100644 --- a/src/Language/Haskell/Brittany/Layouters/Decl.hs +++ b/src/Language/Haskell/Brittany/Layouters/Decl.hs @@ -84,7 +84,7 @@ layoutBind lbind@(L _ bind) = case bind of clauseDocs <- layoutGrhs `mapM` grhss mWhereDocs <- layoutLocalBinds whereBinds binderDoc <- docLit $ Text.pack "=" - fmap Right $ docWrapNode lbind $ layoutPatternBindFinal binderDoc (Just patDoc) clauseDocs mWhereDocs + fmap Right $ docWrapNode lbind $ layoutPatternBindFinal Text.empty binderDoc (Just patDoc) clauseDocs mWhereDocs _ -> Right <$> unknownNodeError "" lbind data BagBindOrSig = BagBind (LHsBindLR RdrName RdrName) @@ -144,10 +144,10 @@ layoutPatternBind mIdStr binderDoc lmatch@(L _ match@(Match _ pats _ (GRHSs grhs $ (List.intersperse docSeparator $ docForceSingleline <$> ps) clauseDocs <- docWrapNodeRest lmatch $ layoutGrhs `mapM` grhss mWhereDocs <- layoutLocalBinds whereBinds - layoutPatternBindFinal binderDoc (Just patDoc) clauseDocs mWhereDocs + layoutPatternBindFinal (fromMaybe Text.empty mIdStr) binderDoc (Just patDoc) clauseDocs mWhereDocs -layoutPatternBindFinal :: BriDocNumbered -> Maybe BriDocNumbered -> [([BriDocNumbered], BriDocNumbered, LHsExpr RdrName)] -> Maybe [BriDocNumbered] -> ToBriDocM BriDocNumbered -layoutPatternBindFinal binderDoc mPatDoc clauseDocs mWhereDocs = do +layoutPatternBindFinal :: Text -> BriDocNumbered -> Maybe BriDocNumbered -> [([BriDocNumbered], BriDocNumbered, LHsExpr RdrName)] -> Maybe [BriDocNumbered] -> ToBriDocM BriDocNumbered +layoutPatternBindFinal idStr binderDoc mPatDoc clauseDocs mWhereDocs = do let patPartInline = case mPatDoc of Nothing -> [] Just patDoc -> [appSep $ docForceSingleline $ return patDoc] @@ -175,7 +175,7 @@ layoutPatternBindFinal binderDoc mPatDoc clauseDocs mWhereDocs = do ] docAlt $ -- one-line solution - [ docCols ColBindingLine + [ docCols (ColBindingLine idStr) [ docSeq (patPartInline ++ [guardPart]) , docSeq @@ -203,7 +203,7 @@ layoutPatternBindFinal binderDoc mPatDoc clauseDocs mWhereDocs = do ] ++ -- one-line solution + where in next line(s) [ docLines - $ [ docCols ColBindingLine + $ [ docCols (ColBindingLine idStr) [ docSeq (patPartInline ++ [guardPart]) , docSeq @@ -242,7 +242,7 @@ layoutPatternBindFinal binderDoc mPatDoc clauseDocs mWhereDocs = do -- pattern and exactly one clause in single line, body as par; -- where in following lines [ docLines - $ [ docCols ColBindingLine + $ [ docCols (ColBindingLine idStr) [ docSeq (patPartInline ++ [appSep guardPart]) , docSeq diff --git a/src/Language/Haskell/Brittany/Layouters/Expr.hs b/src/Language/Haskell/Brittany/Layouters/Expr.hs index f82a833..7811b2b 100644 --- a/src/Language/Haskell/Brittany/Layouters/Expr.hs +++ b/src/Language/Haskell/Brittany/Layouters/Expr.hs @@ -392,7 +392,7 @@ layoutExpr lexpr@(L _ expr) = docWrapNode lexpr $ case expr of binderDoc <- docLit $ Text.pack " ->" docAddBaseY BrIndentRegular $ docPar (docLit $ Text.pack "if") - (layoutPatternBindFinal binderDoc Nothing clauseDocs Nothing) + (layoutPatternBindFinal Text.empty binderDoc Nothing clauseDocs Nothing) HsLet binds exp1 -> do expDoc1 <- docSharedWrapper layoutExpr exp1 mBindDocs <- layoutLocalBinds binds diff --git a/src/Language/Haskell/Brittany/Types.hs b/src/Language/Haskell/Brittany/Types.hs index 27434b5..87ff39f 100644 --- a/src/Language/Haskell/Brittany/Types.hs +++ b/src/Language/Haskell/Brittany/Types.hs @@ -146,7 +146,7 @@ data ColSig -- Has variable number of columns depending on the number of patterns. | ColPatterns | ColCasePattern - | ColBindingLine + | ColBindingLine Text -- e.g. "func pat pat = expr" -- 1111111111111222222 -- or "pat | stmt -> expr"