Respect empty lines after let keyword
parent
687b59c62f
commit
91300f5316
|
@ -720,6 +720,10 @@ instance DocFlushCommsPost (Maybe GHC.RealSrcSpan) (ToBriDocM BriDocNumbered) wh
|
||||||
bd <- bdm
|
bd <- bdm
|
||||||
pure (i1, BDFlushCommentsPost (GHC.realSrcSpanEnd loc) shouldMark bd)
|
pure (i1, BDFlushCommentsPost (GHC.realSrcSpanEnd loc) shouldMark bd)
|
||||||
|
|
||||||
|
instance DocFlushCommsPost GHC.EpaLocation (ToBriDocM BriDocNumbered) where
|
||||||
|
docFlushCommsPost shouldMark epaLocation =
|
||||||
|
docFlushCommsPost shouldMark (Just $ GHC.epaLocationRealSrcSpan epaLocation)
|
||||||
|
|
||||||
instance DocFlushCommsPost ann (ToBriDocM BriDocNumbered)
|
instance DocFlushCommsPost ann (ToBriDocM BriDocNumbered)
|
||||||
=> DocFlushCommsPost ann (ToBriDocM [BriDocNumbered]) where
|
=> DocFlushCommsPost ann (ToBriDocM [BriDocNumbered]) where
|
||||||
docFlushCommsPost shouldMark loc bdm = do
|
docFlushCommsPost shouldMark loc bdm = do
|
||||||
|
|
|
@ -556,7 +556,10 @@ layoutExpr lexpr@(L _ expr) = do
|
||||||
-- to making brittany idempotent, even though the result is non-optimal
|
-- to making brittany idempotent, even though the result is non-optimal
|
||||||
-- if "let" is moved horizontally as part of the transformation, as the
|
-- if "let" is moved horizontally as part of the transformation, as the
|
||||||
-- comments before the first let item are moved horizontally with it.
|
-- comments before the first let item are moved horizontally with it.
|
||||||
letDoc <- shareDoc $ wrapLet $ docLit $ Text.pack "let"
|
letDoc <- shareDoc
|
||||||
|
$ docFlushCommsPost True spanLet
|
||||||
|
$ wrapLet
|
||||||
|
$ docLitS "let"
|
||||||
inDoc <- shareDoc $ wrapIn $ docLit $ Text.pack "in"
|
inDoc <- shareDoc $ wrapIn $ docLit $ Text.pack "in"
|
||||||
docSetBaseAndIndent $ case fmap snd mBindDocs of
|
docSetBaseAndIndent $ case fmap snd mBindDocs of
|
||||||
Just [bindDoc] -> runFilteredAlternative $ do
|
Just [bindDoc] -> runFilteredAlternative $ do
|
||||||
|
|
|
@ -47,18 +47,20 @@ layoutStmt lstmt@(L _ stmt) = do
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
LetStmt epAnn binds -> docHandleComms epAnn $ do
|
LetStmt epAnn binds -> docHandleComms epAnn $ do
|
||||||
|
let spanLet = obtainAnnPos epAnn AnnLet
|
||||||
|
letDoc <- shareDoc $ docFlushCommsPost True spanLet $ docLitS "let"
|
||||||
let isFree = indentPolicy == IndentPolicyFree
|
let isFree = indentPolicy == IndentPolicyFree
|
||||||
let indentFourPlus = indentAmount >= 4
|
let indentFourPlus = indentAmount >= 4
|
||||||
(wrapBinds, bindrDocsMay) <- callLayouter layout_localBinds binds
|
(wrapBinds, bindrDocsMay) <- callLayouter layout_localBinds binds
|
||||||
case bindrDocsMay of
|
case bindrDocsMay of
|
||||||
Nothing -> docLit $ Text.pack "let"
|
Nothing -> letDoc
|
||||||
-- i just tested the above, and it is indeed allowed. heh.
|
-- i just tested the above, and it is indeed allowed. heh.
|
||||||
Just (_, []) -> docLit $ Text.pack "let" -- this probably never happens
|
Just (_, []) -> letDoc -- this probably never happens
|
||||||
Just (_, [bindDoc]) -> docAlt
|
Just (_, [bindDoc]) -> docAlt
|
||||||
[ -- let bind = expr
|
[ -- let bind = expr
|
||||||
docCols
|
docCols
|
||||||
ColDoLet
|
ColDoLet
|
||||||
[ appSep $ docLit $ Text.pack "let"
|
[ appSep $ letDoc
|
||||||
, let
|
, let
|
||||||
f = case indentPolicy of
|
f = case indentPolicy of
|
||||||
IndentPolicyFree -> docSetBaseAndIndent
|
IndentPolicyFree -> docSetBaseAndIndent
|
||||||
|
@ -71,7 +73,7 @@ layoutStmt lstmt@(L _ stmt) = do
|
||||||
, -- let
|
, -- let
|
||||||
-- bind = expr
|
-- bind = expr
|
||||||
docAddBaseY BrIndentRegular $ docPar
|
docAddBaseY BrIndentRegular $ docPar
|
||||||
(docLit $ Text.pack "let")
|
letDoc
|
||||||
(wrapBinds $ docSetBaseAndIndent $ return bindDoc)
|
(wrapBinds $ docSetBaseAndIndent $ return bindDoc)
|
||||||
]
|
]
|
||||||
Just (_, bindDocs) -> runFilteredAlternative $ do
|
Just (_, bindDocs) -> runFilteredAlternative $ do
|
||||||
|
@ -79,7 +81,7 @@ layoutStmt lstmt@(L _ stmt) = do
|
||||||
-- bbb = exprb
|
-- bbb = exprb
|
||||||
-- ccc = exprc
|
-- ccc = exprc
|
||||||
addAlternativeCond (isFree || indentFourPlus) $ docSeq
|
addAlternativeCond (isFree || indentFourPlus) $ docSeq
|
||||||
[ appSep $ docLit $ Text.pack "let"
|
[ appSep $ letDoc
|
||||||
, let
|
, let
|
||||||
f = if indentFourPlus
|
f = if indentFourPlus
|
||||||
then docEnsureIndent BrIndentRegular
|
then docEnsureIndent BrIndentRegular
|
||||||
|
@ -93,7 +95,7 @@ layoutStmt lstmt@(L _ stmt) = do
|
||||||
addAlternativeCond (not indentFourPlus)
|
addAlternativeCond (not indentFourPlus)
|
||||||
$ docAddBaseY BrIndentRegular
|
$ docAddBaseY BrIndentRegular
|
||||||
$ docPar
|
$ docPar
|
||||||
(docLit $ Text.pack "let")
|
letDoc
|
||||||
(wrapBinds $ docSetBaseAndIndent $ docLines $ return <$> bindDocs)
|
(wrapBinds $ docSetBaseAndIndent $ docLines $ return <$> bindDocs)
|
||||||
RecStmt epAnn (L _ stmts) _ _ _ _ _ ->
|
RecStmt epAnn (L _ stmts) _ _ _ _ _ ->
|
||||||
docHandleComms epAnn $ runFilteredAlternative $ do
|
docHandleComms epAnn $ runFilteredAlternative $ do
|
||||||
|
|
Loading…
Reference in New Issue