Update guard formatting for IndentPolicyLeft
parent
f3c37a6abf
commit
d1e1984206
|
@ -382,8 +382,9 @@ func (x:+:xr) = x
|
||||||
func | True = x
|
func | True = x
|
||||||
|
|
||||||
#test multiple-clauses-1
|
#test multiple-clauses-1
|
||||||
func x | x = simple expression
|
func x
|
||||||
| otherwise = 0
|
| x = simple expression
|
||||||
|
| otherwise = 0
|
||||||
|
|
||||||
#test multiple-clauses-2
|
#test multiple-clauses-2
|
||||||
func x
|
func x
|
||||||
|
@ -845,8 +846,9 @@ showPackageDetailedInfo pkginfo =
|
||||||
]
|
]
|
||||||
|
|
||||||
#test issue 7a
|
#test issue 7a
|
||||||
isValidPosition position | validX && validY = Just position
|
isValidPosition position
|
||||||
| otherwise = Nothing
|
| validX && validY = Just position
|
||||||
|
| otherwise = Nothing
|
||||||
|
|
||||||
#test issue-6-pattern-linebreak-validity
|
#test issue-6-pattern-linebreak-validity
|
||||||
## this is ugly, but at least syntactically valid.
|
## this is ugly, but at least syntactically valid.
|
||||||
|
|
|
@ -265,9 +265,15 @@ layoutPatternBindFinal alignmentToken binderDoc mPatDoc clauseDocs mWhereDocs ha
|
||||||
gs -> docSeq
|
gs -> docSeq
|
||||||
$ [appSep $ docLit $ Text.pack "|"]
|
$ [appSep $ docLit $ Text.pack "|"]
|
||||||
++ List.intersperse docCommaSep (return <$> gs)
|
++ List.intersperse docCommaSep (return <$> gs)
|
||||||
docAlt
|
|
||||||
|
indentPolicy <- mAsk
|
||||||
|
<&> _conf_layout
|
||||||
|
.> _lconfig_indentPolicy
|
||||||
|
.> confUnpack
|
||||||
|
docAltFilter
|
||||||
$ -- one-line solution
|
$ -- one-line solution
|
||||||
[ docCols
|
[ ( True
|
||||||
|
, docCols
|
||||||
(ColBindingLine alignmentToken)
|
(ColBindingLine alignmentToken)
|
||||||
[ docSeq (patPartInline ++ [guardPart])
|
[ docSeq (patPartInline ++ [guardPart])
|
||||||
, docSeq
|
, docSeq
|
||||||
|
@ -276,6 +282,7 @@ layoutPatternBindFinal alignmentToken binderDoc mPatDoc clauseDocs mWhereDocs ha
|
||||||
, wherePart
|
, wherePart
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
)
|
||||||
| not hasComments
|
| not hasComments
|
||||||
, [(guards, body, _bodyRaw)] <- [clauseDocs]
|
, [(guards, body, _bodyRaw)] <- [clauseDocs]
|
||||||
, let guardPart = singleLineGuardsDoc guards
|
, let guardPart = singleLineGuardsDoc guards
|
||||||
|
@ -289,7 +296,8 @@ layoutPatternBindFinal alignmentToken binderDoc mPatDoc clauseDocs mWhereDocs ha
|
||||||
_ -> []
|
_ -> []
|
||||||
]
|
]
|
||||||
++ -- one-line solution + where in next line(s)
|
++ -- one-line solution + where in next line(s)
|
||||||
[ docLines
|
[ ( True
|
||||||
|
, docLines
|
||||||
$ [ docCols
|
$ [ docCols
|
||||||
(ColBindingLine alignmentToken)
|
(ColBindingLine alignmentToken)
|
||||||
[ docSeq (patPartInline ++ [guardPart])
|
[ docSeq (patPartInline ++ [guardPart])
|
||||||
|
@ -298,23 +306,27 @@ layoutPatternBindFinal alignmentToken binderDoc mPatDoc clauseDocs mWhereDocs ha
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
++ wherePartMultiLine
|
++ wherePartMultiLine
|
||||||
|
)
|
||||||
| [(guards, body, _bodyRaw)] <- [clauseDocs]
|
| [(guards, body, _bodyRaw)] <- [clauseDocs]
|
||||||
, let guardPart = singleLineGuardsDoc guards
|
, let guardPart = singleLineGuardsDoc guards
|
||||||
, Data.Maybe.isJust mWhereDocs
|
, Data.Maybe.isJust mWhereDocs
|
||||||
]
|
]
|
||||||
++ -- two-line solution + where in next line(s)
|
++ -- two-line solution + where in next line(s)
|
||||||
[ docLines
|
[ ( True
|
||||||
|
, docLines
|
||||||
$ [ docForceSingleline
|
$ [ docForceSingleline
|
||||||
$ docSeq (patPartInline ++ [guardPart, return binderDoc])
|
$ docSeq (patPartInline ++ [guardPart, return binderDoc])
|
||||||
, docEnsureIndent BrIndentRegular $ docForceSingleline $ return body
|
, docEnsureIndent BrIndentRegular $ docForceSingleline $ return body
|
||||||
]
|
]
|
||||||
++ wherePartMultiLine
|
++ wherePartMultiLine
|
||||||
|
)
|
||||||
| [(guards, body, _bodyRaw)] <- [clauseDocs]
|
| [(guards, body, _bodyRaw)] <- [clauseDocs]
|
||||||
, let guardPart = singleLineGuardsDoc guards
|
, let guardPart = singleLineGuardsDoc guards
|
||||||
]
|
]
|
||||||
++ -- 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
|
[ ( True
|
||||||
|
, docLines
|
||||||
$ [ docCols
|
$ [ docCols
|
||||||
(ColBindingLine alignmentToken)
|
(ColBindingLine alignmentToken)
|
||||||
[ docSeq (patPartInline ++ [guardPart])
|
[ docSeq (patPartInline ++ [guardPart])
|
||||||
|
@ -329,24 +341,28 @@ layoutPatternBindFinal alignmentToken binderDoc mPatDoc clauseDocs mWhereDocs ha
|
||||||
-- , docAddBaseY BrIndentRegular $ return body
|
-- , docAddBaseY BrIndentRegular $ return body
|
||||||
-- ]
|
-- ]
|
||||||
++ wherePartMultiLine
|
++ wherePartMultiLine
|
||||||
|
)
|
||||||
| [(guards, body, _bodyRaw)] <- [clauseDocs]
|
| [(guards, body, _bodyRaw)] <- [clauseDocs]
|
||||||
, let guardPart = singleLineGuardsDoc guards
|
, let guardPart = singleLineGuardsDoc guards
|
||||||
]
|
]
|
||||||
++ -- pattern and exactly one clause in single line, body in new line.
|
++ -- pattern and exactly one clause in single line, body in new line.
|
||||||
[ docLines
|
[ ( True
|
||||||
|
, docLines
|
||||||
$ [ docSeq (patPartInline ++ [guardPart, return binderDoc])
|
$ [ docSeq (patPartInline ++ [guardPart, return binderDoc])
|
||||||
, docEnsureIndent BrIndentRegular
|
, docEnsureIndent BrIndentRegular
|
||||||
$ docNonBottomSpacing
|
$ docNonBottomSpacing
|
||||||
$ (docAddBaseY BrIndentRegular $ return body)
|
$ (docAddBaseY BrIndentRegular $ return body)
|
||||||
]
|
]
|
||||||
++ wherePartMultiLine
|
++ wherePartMultiLine
|
||||||
|
)
|
||||||
| [(guards, body, _)] <- [clauseDocs]
|
| [(guards, body, _)] <- [clauseDocs]
|
||||||
, let guardPart = singleLineGuardsDoc guards
|
, let guardPart = singleLineGuardsDoc guards
|
||||||
]
|
]
|
||||||
++ -- multiple clauses added in-paragraph, each in a single line
|
++ -- multiple clauses added in-paragraph, each in a single line
|
||||||
-- example: foo | bar = baz
|
-- example: foo | bar = baz
|
||||||
-- | lll = asd
|
-- | lll = asd
|
||||||
[ docLines
|
[ ( indentPolicy /= IndentPolicyLeft
|
||||||
|
, docLines
|
||||||
$ [ docSeq
|
$ [ docSeq
|
||||||
[ appSep $ docForceSingleline $ return patDoc
|
[ appSep $ docForceSingleline $ return patDoc
|
||||||
, docSetBaseY
|
, docSetBaseY
|
||||||
|
@ -370,10 +386,12 @@ layoutPatternBindFinal alignmentToken binderDoc mPatDoc clauseDocs mWhereDocs ha
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
++ wherePartMultiLine
|
++ wherePartMultiLine
|
||||||
|
)
|
||||||
| Just patDoc <- [mPatDoc]
|
| Just patDoc <- [mPatDoc]
|
||||||
]
|
]
|
||||||
++ -- multiple clauses, each in a separate, single line
|
++ -- multiple clauses, each in a separate, single line
|
||||||
[ docLines
|
[ ( True
|
||||||
|
, docLines
|
||||||
$ [ docAddBaseY BrIndentRegular
|
$ [ docAddBaseY BrIndentRegular
|
||||||
$ patPartParWrap
|
$ patPartParWrap
|
||||||
$ docLines
|
$ docLines
|
||||||
|
@ -396,10 +414,12 @@ layoutPatternBindFinal alignmentToken binderDoc mPatDoc clauseDocs mWhereDocs ha
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
++ wherePartMultiLine
|
++ wherePartMultiLine
|
||||||
|
)
|
||||||
]
|
]
|
||||||
++ -- multiple clauses, each with the guard(s) in a single line, body
|
++ -- multiple clauses, each with the guard(s) in a single line, body
|
||||||
-- as a paragraph
|
-- as a paragraph
|
||||||
[ docLines
|
[ ( True
|
||||||
|
, docLines
|
||||||
$ [ docAddBaseY BrIndentRegular
|
$ [ docAddBaseY BrIndentRegular
|
||||||
$ patPartParWrap
|
$ patPartParWrap
|
||||||
$ docLines
|
$ docLines
|
||||||
|
@ -431,10 +451,12 @@ layoutPatternBindFinal alignmentToken binderDoc mPatDoc clauseDocs mWhereDocs ha
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
++ wherePartMultiLine
|
++ wherePartMultiLine
|
||||||
|
)
|
||||||
]
|
]
|
||||||
++ -- multiple clauses, each with the guard(s) in a single line, body
|
++ -- multiple clauses, each with the guard(s) in a single line, body
|
||||||
-- in a new line as a paragraph
|
-- in a new line as a paragraph
|
||||||
[ docLines
|
[ ( True
|
||||||
|
, docLines
|
||||||
$ [ docAddBaseY BrIndentRegular
|
$ [ docAddBaseY BrIndentRegular
|
||||||
$ patPartParWrap
|
$ patPartParWrap
|
||||||
$ docLines
|
$ docLines
|
||||||
|
@ -464,9 +486,11 @@ layoutPatternBindFinal alignmentToken binderDoc mPatDoc clauseDocs mWhereDocs ha
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
++ wherePartMultiLine
|
++ wherePartMultiLine
|
||||||
|
)
|
||||||
]
|
]
|
||||||
++ -- conservative approach: everything starts on the left.
|
++ -- conservative approach: everything starts on the left.
|
||||||
[ docLines
|
[ ( True
|
||||||
|
, docLines
|
||||||
$ [ docAddBaseY BrIndentRegular
|
$ [ docAddBaseY BrIndentRegular
|
||||||
$ patPartParWrap
|
$ patPartParWrap
|
||||||
$ docLines
|
$ docLines
|
||||||
|
@ -494,4 +518,5 @@ layoutPatternBindFinal alignmentToken binderDoc mPatDoc clauseDocs mWhereDocs ha
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
++ wherePartMultiLine
|
++ wherePartMultiLine
|
||||||
|
)
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue