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 clauseDocs <- layoutGrhs `mapM` grhss
mWhereDocs <- layoutLocalBinds whereBinds mWhereDocs <- layoutLocalBinds whereBinds
binderDoc <- docLit $ Text.pack "=" 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 _ -> Right <$> unknownNodeError "" lbind
data BagBindOrSig = BagBind (LHsBindLR RdrName RdrName) 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) $ (List.intersperse docSeparator $ docForceSingleline <$> ps)
clauseDocs <- docWrapNodeRest lmatch $ layoutGrhs `mapM` grhss clauseDocs <- docWrapNodeRest lmatch $ layoutGrhs `mapM` grhss
mWhereDocs <- layoutLocalBinds whereBinds 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 :: Text -> BriDocNumbered -> Maybe BriDocNumbered -> [([BriDocNumbered], BriDocNumbered, LHsExpr RdrName)] -> Maybe [BriDocNumbered] -> ToBriDocM BriDocNumbered
layoutPatternBindFinal binderDoc mPatDoc clauseDocs mWhereDocs = do layoutPatternBindFinal idStr binderDoc mPatDoc clauseDocs mWhereDocs = do
let patPartInline = case mPatDoc of let patPartInline = case mPatDoc of
Nothing -> [] Nothing -> []
Just patDoc -> [appSep $ docForceSingleline $ return patDoc] Just patDoc -> [appSep $ docForceSingleline $ return patDoc]
@ -175,7 +175,7 @@ layoutPatternBindFinal binderDoc mPatDoc clauseDocs mWhereDocs = do
] ]
docAlt $ docAlt $
-- one-line solution -- one-line solution
[ docCols ColBindingLine [ docCols (ColBindingLine idStr)
[ docSeq [ docSeq
(patPartInline ++ [guardPart]) (patPartInline ++ [guardPart])
, docSeq , docSeq
@ -203,7 +203,7 @@ layoutPatternBindFinal binderDoc mPatDoc clauseDocs mWhereDocs = do
] ++ ] ++
-- one-line solution + where in next line(s) -- one-line solution + where in next line(s)
[ docLines [ docLines
$ [ docCols ColBindingLine $ [ docCols (ColBindingLine idStr)
[ docSeq [ docSeq
(patPartInline ++ [guardPart]) (patPartInline ++ [guardPart])
, docSeq , docSeq
@ -242,7 +242,7 @@ layoutPatternBindFinal binderDoc mPatDoc clauseDocs mWhereDocs = do
-- pattern and exactly one clause in single line, body as par; -- pattern and exactly one clause in single line, body as par;
-- where in following lines -- where in following lines
[ docLines [ docLines
$ [ docCols ColBindingLine $ [ docCols (ColBindingLine idStr)
[ docSeq [ docSeq
(patPartInline ++ [appSep guardPart]) (patPartInline ++ [appSep guardPart])
, docSeq , docSeq

View File

@ -392,7 +392,7 @@ layoutExpr lexpr@(L _ expr) = docWrapNode lexpr $ case expr of
binderDoc <- docLit $ Text.pack " ->" binderDoc <- docLit $ Text.pack " ->"
docAddBaseY BrIndentRegular $ docPar docAddBaseY BrIndentRegular $ docPar
(docLit $ Text.pack "if") (docLit $ Text.pack "if")
(layoutPatternBindFinal binderDoc Nothing clauseDocs Nothing) (layoutPatternBindFinal Text.empty binderDoc Nothing clauseDocs Nothing)
HsLet binds exp1 -> do HsLet binds exp1 -> do
expDoc1 <- docSharedWrapper layoutExpr exp1 expDoc1 <- docSharedWrapper layoutExpr exp1
mBindDocs <- layoutLocalBinds binds mBindDocs <- layoutLocalBinds binds

View File

@ -146,7 +146,7 @@ data ColSig
-- Has variable number of columns depending on the number of patterns. -- Has variable number of columns depending on the number of patterns.
| ColPatterns | ColPatterns
| ColCasePattern | ColCasePattern
| ColBindingLine | ColBindingLine Text
-- e.g. "func pat pat = expr" -- e.g. "func pat pat = expr"
-- 1111111111111222222 -- 1111111111111222222
-- or "pat | stmt -> expr" -- or "pat | stmt -> expr"