Implement `IndentPolicyLeft` for one HsApp case
parent
4568bd3553
commit
88cbaf813a
|
@ -32,6 +32,11 @@ import Language.Haskell.Brittany.Internal.Layouters.Type
|
||||||
|
|
||||||
layoutExpr :: ToBriDoc HsExpr
|
layoutExpr :: ToBriDoc HsExpr
|
||||||
layoutExpr lexpr@(L _ expr) = do
|
layoutExpr lexpr@(L _ expr) = do
|
||||||
|
indentPolicy <- mAsk
|
||||||
|
<&> _conf_layout
|
||||||
|
.> _lconfig_indentPolicy
|
||||||
|
.> confUnpack
|
||||||
|
let allowFreeIndent = indentPolicy == IndentPolicyFree
|
||||||
docWrapNode lexpr $ case expr of
|
docWrapNode lexpr $ case expr of
|
||||||
HsVar vname -> do
|
HsVar vname -> do
|
||||||
docLit =<< lrdrNameToTextAnn vname
|
docLit =<< lrdrNameToTextAnn vname
|
||||||
|
@ -114,29 +119,35 @@ layoutExpr lexpr@(L _ expr) = do
|
||||||
let (headE, paramEs) = gather [exp2] exp1
|
let (headE, paramEs) = gather [exp2] exp1
|
||||||
headDoc <- docSharedWrapper layoutExpr headE
|
headDoc <- docSharedWrapper layoutExpr headE
|
||||||
paramDocs <- docSharedWrapper layoutExpr `mapM` paramEs
|
paramDocs <- docSharedWrapper layoutExpr `mapM` paramEs
|
||||||
docAlt
|
docAltFilter
|
||||||
[ -- foo x y
|
[ -- foo x y
|
||||||
docCols ColApp
|
( True
|
||||||
$ appSep (docForceSingleline headDoc)
|
, docCols ColApp
|
||||||
: spacifyDocs (docForceSingleline <$> paramDocs)
|
$ appSep (docForceSingleline headDoc)
|
||||||
|
: spacifyDocs (docForceSingleline <$> paramDocs)
|
||||||
|
)
|
||||||
, -- foo x
|
, -- foo x
|
||||||
-- y
|
-- y
|
||||||
docSeq
|
( allowFreeIndent
|
||||||
[ appSep (docForceSingleline headDoc)
|
, docSeq
|
||||||
, docSetBaseY
|
[ appSep (docForceSingleline headDoc)
|
||||||
$ docAddBaseY BrIndentRegular
|
, docSetBaseY
|
||||||
$ docLines
|
$ docAddBaseY BrIndentRegular
|
||||||
$ (docForceSingleline <$> paramDocs)
|
$ docLines
|
||||||
]
|
$ (docForceSingleline <$> paramDocs)
|
||||||
|
]
|
||||||
|
)
|
||||||
, -- foo
|
, -- foo
|
||||||
-- x
|
-- x
|
||||||
-- y
|
-- y
|
||||||
docSetParSpacing
|
( True
|
||||||
$ docAddBaseY BrIndentRegular
|
, docSetParSpacing
|
||||||
$ docPar
|
$ docAddBaseY BrIndentRegular
|
||||||
(docForceSingleline headDoc)
|
$ docPar
|
||||||
( docNonBottomSpacing
|
(docForceSingleline headDoc)
|
||||||
$ docLines paramDocs
|
( docNonBottomSpacing
|
||||||
|
$ docLines paramDocs
|
||||||
|
)
|
||||||
)
|
)
|
||||||
, -- ( multi
|
, -- ( multi
|
||||||
-- line
|
-- line
|
||||||
|
@ -144,11 +155,13 @@ layoutExpr lexpr@(L _ expr) = do
|
||||||
-- )
|
-- )
|
||||||
-- x
|
-- x
|
||||||
-- y
|
-- y
|
||||||
docAddBaseY BrIndentRegular
|
( True
|
||||||
$ docPar
|
, docAddBaseY BrIndentRegular
|
||||||
headDoc
|
$ docPar
|
||||||
( docNonBottomSpacing
|
headDoc
|
||||||
$ docLines paramDocs
|
( docNonBottomSpacing
|
||||||
|
$ docLines paramDocs
|
||||||
|
)
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
HsApp exp1 exp2 -> do
|
HsApp exp1 exp2 -> do
|
||||||
|
|
Loading…
Reference in New Issue