Do not retain newlines when refactoring list into single line
parent
4818566c83
commit
043b554a89
|
@ -0,0 +1,23 @@
|
||||||
|
#group expression/list
|
||||||
|
|
||||||
|
#golden list format into singleline should not keep spacing
|
||||||
|
foo =
|
||||||
|
[ 1
|
||||||
|
, 2
|
||||||
|
, 3
|
||||||
|
, 4
|
||||||
|
, 5
|
||||||
|
]
|
||||||
|
#expected
|
||||||
|
foo = [1, 2, 3, 4, 5]
|
||||||
|
|
||||||
|
#golden singleline list with comment
|
||||||
|
foo = [1 {- a -}, {- b -} 2, {- c -} 3, 4, 5]
|
||||||
|
#expected
|
||||||
|
foo =
|
||||||
|
[ 1 {- a -}
|
||||||
|
, {- b -} 2
|
||||||
|
, {- c -} 3
|
||||||
|
, 4
|
||||||
|
, 5
|
||||||
|
]
|
|
@ -795,7 +795,8 @@ docHandleListElemComms layouter e = case obtainListElemStartCommaLocs e of
|
||||||
docHandleListElemCommsProperPost
|
docHandleListElemCommsProperPost
|
||||||
:: (LocatedA ast -> ToBriDocM BriDocNumbered)
|
:: (LocatedA ast -> ToBriDocM BriDocNumbered)
|
||||||
-> [LocatedA ast]
|
-> [LocatedA ast]
|
||||||
-> ToBriDocM [(Maybe GHC.RealSrcLoc, ToBriDocM BriDocNumbered)]
|
-> ToBriDocM
|
||||||
|
[(Maybe GHC.RealSrcLoc, LocatedA ast, ToBriDocM BriDocNumbered)]
|
||||||
docHandleListElemCommsProperPost layouter es = case es of
|
docHandleListElemCommsProperPost layouter es = case es of
|
||||||
[] -> pure []
|
[] -> pure []
|
||||||
(e1 : rest) -> case obtainListElemStartCommaLocs e1 of
|
(e1 : rest) -> case obtainListElemStartCommaLocs e1 of
|
||||||
|
@ -803,7 +804,8 @@ docHandleListElemCommsProperPost layouter es = case es of
|
||||||
res <- go posComma rest
|
res <- go posComma rest
|
||||||
pure
|
pure
|
||||||
$ ( Nothing
|
$ ( Nothing
|
||||||
, docFlushCommsPost True e1 $ docHandleComms posStart $ layouter e1
|
, e1
|
||||||
|
, docHandleComms posStart $ layouter e1
|
||||||
)
|
)
|
||||||
: res
|
: res
|
||||||
where
|
where
|
||||||
|
@ -813,7 +815,8 @@ docHandleListElemCommsProperPost layouter es = case es of
|
||||||
res <- go posComma rest
|
res <- go posComma rest
|
||||||
pure
|
pure
|
||||||
$ ( intoComma
|
$ ( intoComma
|
||||||
, docFlushCommsPost True e1 $ docHandleComms posStart $ layouter e1
|
, e1
|
||||||
|
, docHandleComms posStart $ layouter e1
|
||||||
)
|
)
|
||||||
: res
|
: res
|
||||||
|
|
||||||
|
|
|
@ -699,17 +699,23 @@ layoutExpr lexpr@(L _ expr) = do
|
||||||
let hasComments = hasAnyCommentsBelow lexpr
|
let hasComments = hasAnyCommentsBelow lexpr
|
||||||
case splitFirstLast elemDocs of
|
case splitFirstLast elemDocs of
|
||||||
FirstLastEmpty -> docSeq [docLit $ Text.pack "[", closeDoc]
|
FirstLastEmpty -> docSeq [docLit $ Text.pack "[", closeDoc]
|
||||||
FirstLastSingleton (_, e) -> docAlt
|
FirstLastSingleton (_, ast, e) -> docAlt
|
||||||
[ docSeq [openDoc, docForceSingleline e, closeDoc]
|
[ docSeq [openDoc, docForceSingleline e, closeDoc]
|
||||||
, docSetBaseY $ docLines
|
, docSetBaseY $ docLines
|
||||||
[docSeq [openDoc, docSeparator, docSetBaseY $ e], closeDoc]
|
[ docSeq
|
||||||
|
[ openDoc
|
||||||
|
, docSeparator
|
||||||
|
, docSetBaseY $ docFlushCommsPost True ast e
|
||||||
]
|
]
|
||||||
FirstLast (_, e1) ems (finalCommaPos, eN) -> runFilteredAlternative $ do
|
, closeDoc
|
||||||
|
]
|
||||||
|
]
|
||||||
|
FirstLast (_, _, e1) ems (finalCommaPos, _, eN) -> runFilteredAlternative $ do
|
||||||
addAlternativeCond (not hasComments)
|
addAlternativeCond (not hasComments)
|
||||||
$ docSeq
|
$ docSeq
|
||||||
$ [openDoc, docForceSingleline e1]
|
$ [openDoc, docForceSingleline e1]
|
||||||
++ [ x
|
++ [ x
|
||||||
| (commaPos, e) <- ems
|
| (commaPos, _, e) <- ems
|
||||||
, x <- [docHandleComms commaPos docCommaSep, docForceSingleline e]
|
, x <- [docHandleComms commaPos docCommaSep, docForceSingleline e]
|
||||||
]
|
]
|
||||||
++ [ docHandleComms finalCommaPos docCommaSep
|
++ [ docHandleComms finalCommaPos docCommaSep
|
||||||
|
@ -717,8 +723,12 @@ layoutExpr lexpr@(L _ expr) = do
|
||||||
, closeDoc]
|
, closeDoc]
|
||||||
addAlternative
|
addAlternative
|
||||||
$ let start = docCols ColList [appSep $ openDoc, e1]
|
$ let start = docCols ColList [appSep $ openDoc, e1]
|
||||||
linesM = ems <&> \(p, d) ->
|
linesM = ems <&> \(p, ast, d) ->
|
||||||
docCols ColList [docHandleComms p docCommaSep, d]
|
docCols
|
||||||
|
ColList
|
||||||
|
[ docHandleComms p docCommaSep
|
||||||
|
, docFlushCommsPost True ast $ d
|
||||||
|
]
|
||||||
lineN = docCols ColList
|
lineN = docCols ColList
|
||||||
[docHandleComms finalCommaPos $ docCommaSep, eN]
|
[docHandleComms finalCommaPos $ docCommaSep, eN]
|
||||||
in docSetBaseY
|
in docSetBaseY
|
||||||
|
|
Loading…
Reference in New Issue