Stop aligning patterns for different functions

pull/3/head
Lennart Spitzner 2016-09-02 00:06:49 +02:00
parent 8218b6e199
commit 395fe02644
3 changed files with 9 additions and 9 deletions

View File

@ -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

View File

@ -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

View File

@ -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"