Improve HsLam and OpApp layouting

pull/3/head
Lennart Spitzner 2016-09-01 13:49:30 +02:00
parent 8277e85187
commit fedfeaaecd
1 changed files with 26 additions and 7 deletions

View File

@ -56,13 +56,32 @@ layoutExpr lexpr@(L _ expr) = docWrapNode lexpr $ case expr of
docCols ColCasePattern docCols ColCasePattern
$ (patDocs <&> (\p -> docSeq [docForceSingleline p, docSeparator])) $ (patDocs <&> (\p -> docSeq [docForceSingleline p, docSeparator]))
docAlt docAlt
[ docSetParSpacing [ -- single line
docSeq
[ docLit $ Text.pack "\\"
, docWrapNode lmatch $ docForceSingleline funcPatternPartLine
, appSep $ docLit $ Text.pack "->"
, docWrapNode lgrhs $ docForceSingleline bodyDoc
]
-- double line
, docSetParSpacing
$ docAddBaseY BrIndentRegular
$ docPar
(docSeq
[ docLit $ Text.pack "\\"
, docWrapNode lmatch $ appSep $ docForceSingleline funcPatternPartLine
, docLit $ Text.pack "->"
])
(docWrapNode lgrhs $ docForceSingleline bodyDoc)
-- wrapped par spacing
, docSetParSpacing
$ docSeq $ docSeq
[ docLit $ Text.pack "\\" [ docLit $ Text.pack "\\"
, docWrapNode lmatch $ docForceSingleline funcPatternPartLine , docWrapNode lmatch $ docForceSingleline funcPatternPartLine
, appSep $ docLit $ Text.pack "->" , appSep $ docLit $ Text.pack "->"
, docWrapNode lgrhs $ docForceParSpacing bodyDoc , docWrapNode lgrhs $ docForceParSpacing bodyDoc
] ]
-- conservative
, docSetParSpacing , docSetParSpacing
$ docAddBaseY BrIndentRegular $ docAddBaseY BrIndentRegular
$ docPar $ docPar
@ -195,12 +214,12 @@ layoutExpr lexpr@(L _ expr) = docWrapNode lexpr $ case expr of
, appSep $ docForceSingleline expDocOp , appSep $ docForceSingleline expDocOp
, docForceSingleline expDocRight , docForceSingleline expDocRight
] ]
, -- line + freely indented block for right expression -- , -- line + freely indented block for right expression
docSeq -- docSeq
[ appSep $ docForceSingleline expDocLeft -- [ appSep $ docForceSingleline expDocLeft
, appSep $ docForceSingleline expDocOp -- , appSep $ docForceSingleline expDocOp
, docSetBaseY $ docAddBaseY BrIndentRegular expDocRight -- , docSetBaseY $ docAddBaseY BrIndentRegular expDocRight
] -- ]
, -- two-line , -- two-line
docAddBaseY BrIndentRegular docAddBaseY BrIndentRegular
$ docPar $ docPar