Fix paren-multiline-expression in do block
parent
354c86ef42
commit
22a658e794
|
@ -1008,3 +1008,10 @@ dofunc = do
|
||||||
-- abc
|
-- abc
|
||||||
more
|
more
|
||||||
code
|
code
|
||||||
|
|
||||||
|
#test do-block paren non-alignment
|
||||||
|
catchFunc = do
|
||||||
|
(func aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
)
|
||||||
|
`catch` catcher
|
||||||
|
|
|
@ -245,16 +245,28 @@ layoutOpTree allowSinglelinePar = \case
|
||||||
wrapParenMlIf x innerHead innerLines = if x
|
wrapParenMlIf x innerHead innerLines = if x
|
||||||
then wrapParenMl innerHead innerLines
|
then wrapParenMl innerHead innerLines
|
||||||
else docPar innerHead (docLines innerLines)
|
else docPar innerHead (docLines innerLines)
|
||||||
wrapParenMl innerHead innerLines = docSetBaseY $ docLines
|
wrapParenMl innerHead innerLines = docAlt
|
||||||
( [ docCols
|
[ docForceZeroAdd $ docSetBaseY $ docLines
|
||||||
ColOpPrefix
|
( [ docCols
|
||||||
[ (if zeroOps then id else appSep) $ docLit $ Text.pack "("
|
ColOpPrefix
|
||||||
, docHandleComms locO $ innerHead
|
[ (if zeroOps then id else appSep) $ docLit $ Text.pack "("
|
||||||
]
|
, docHandleComms locO $ innerHead
|
||||||
]
|
]
|
||||||
++ innerLines
|
]
|
||||||
++ [docHandleComms locC $ docLit $ Text.pack ")"]
|
++ innerLines
|
||||||
)
|
++ [docHandleComms locC $ docLit $ Text.pack ")"]
|
||||||
|
)
|
||||||
|
, docPar
|
||||||
|
(docCols
|
||||||
|
ColOpPrefix
|
||||||
|
[ (if zeroOps then id else appSep) $ docLit $ Text.pack "("
|
||||||
|
, docHandleComms locO $ innerHead
|
||||||
|
]
|
||||||
|
)
|
||||||
|
( docLines
|
||||||
|
$ innerLines ++ [docHandleComms locC $ docLit $ Text.pack ")"]
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
configAllowsParInsert <- askLayoutConf _lconfig_fixityBasedAddAlignParens
|
configAllowsParInsert <- askLayoutConf _lconfig_fixityBasedAddAlignParens
|
||||||
let allowParIns = configAllowsParInsert && case fixity of
|
let allowParIns = configAllowsParInsert && case fixity of
|
||||||
|
|
|
@ -205,7 +205,7 @@ transformAlts =
|
||||||
let ind = _acp_indent acp + _acp_indentPrep acp + indAdd
|
let ind = _acp_indent acp + _acp_indentPrep acp + indAdd
|
||||||
mSet $ acp
|
mSet $ acp
|
||||||
{ _acp_indent = ind, _acp_indentPrep = 0
|
{ _acp_indent = ind, _acp_indentPrep = 0
|
||||||
, _acp_indentPrepForced = False
|
, _acp_indentPrepForced = parentForced
|
||||||
}
|
}
|
||||||
sameLine' <- go sameLine
|
sameLine' <- go sameLine
|
||||||
mModify $ \acp' -> acp'
|
mModify $ \acp' -> acp'
|
||||||
|
|
|
@ -91,8 +91,8 @@ transformSimplifyColumns = Uniplate.rewrite $ \case
|
||||||
]
|
]
|
||||||
BDPar ind col1@(BDCols sig1 _) col2@(BDCols sig2 _) | sig1 == sig2 ->
|
BDPar ind col1@(BDCols sig1 _) col2@(BDCols sig2 _) | sig1 == sig2 ->
|
||||||
Just $ BDAddBaseY ind (BDLines [col1, col2])
|
Just $ BDAddBaseY ind (BDLines [col1, col2])
|
||||||
BDPar ind col1@(BDCols sig1 _) (BDLines (col2@(BDCols sig2 _) : rest))
|
-- BDPar ind col1@(BDCols sig1 _) (BDLines (col2@(BDCols sig2 _) : rest))
|
||||||
| sig1 == sig2 -> Just $ BDPar ind (BDLines [col1, col2]) (BDLines rest)
|
-- | sig1 == sig2 -> Just $ BDPar ind (BDLines [col1, col2]) (BDLines rest)
|
||||||
BDPar ind (BDLines lines1) col2@(BDCols sig2 _)
|
BDPar ind (BDLines lines1) col2@(BDCols sig2 _)
|
||||||
| BDCols sig1 _ <- List.last lines1, sig1 == sig2 -> Just
|
| BDCols sig1 _ <- List.last lines1, sig1 == sig2 -> Just
|
||||||
$ BDAddBaseY ind (BDLines $ lines1 ++ [col2])
|
$ BDAddBaseY ind (BDLines $ lines1 ++ [col2])
|
||||||
|
|
Loading…
Reference in New Issue