Skip to content

Commit f3e6887

Browse files
committed
Pretty: refactor
1 parent 2b326e9 commit f3e6887

File tree

1 file changed

+21
-47
lines changed

1 file changed

+21
-47
lines changed

src/Nix/Pretty.hs

Lines changed: 21 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,7 @@ import Data.List ( isPrefixOf
2525
)
2626
import Data.List.NonEmpty ( NonEmpty(..) )
2727
import qualified Data.List.NonEmpty as NE
28-
import Data.Maybe ( isJust
29-
, fromMaybe
30-
)
28+
import Data.Maybe ( fromMaybe )
3129
import Data.Text ( pack
3230
, unpack
3331
, replace
@@ -216,38 +214,16 @@ exprFNixDoc = \case
216214
NStr str -> simpleExpr $ prettyString str
217215
NList [] -> simpleExpr "[]"
218216
NList xs ->
219-
simpleExpr $
220-
group $
221-
nest 2 $
222-
vsep $
223-
concat
224-
[ ["["]
225-
, wrapParens appOpNonAssoc <$>
226-
xs
227-
, ["]"]
228-
]
217+
prettyContainer $
218+
["["] <> (wrapParens appOpNonAssoc <$> xs) <> ["]"]
229219
NSet NNonRecursive [] -> simpleExpr "{}"
230220
NSet NNonRecursive xs ->
231-
simpleExpr $
232-
group $
233-
nest 2 $
234-
vsep $
235-
concat
236-
[ ["{"]
237-
, prettyBind <$> xs
238-
, ["}"]
239-
]
221+
prettyContainer $
222+
["{"] <> (prettyBind <$> xs) <> ["}"]
240223
NSet NRecursive [] -> simpleExpr "rec {}"
241224
NSet NRecursive xs ->
242-
simpleExpr $
243-
group $
244-
nest 2 $
245-
vsep $
246-
concat
247-
[ ["rec {"]
248-
, prettyBind <$> xs
249-
, ["}"]
250-
]
225+
prettyContainer $
226+
["rec {"] <> (prettyBind <$> xs) <> ["}"]
251227
NAbs args body ->
252228
leastPrecedence $
253229
nest 2 $
@@ -258,7 +234,8 @@ exprFNixDoc = \case
258234
NBinary NApp fun arg ->
259235
mkNixDoc appOp (wrapParens appOp fun <> " " <> wrapParens appOpNonAssoc arg)
260236
NBinary op r1 r2 ->
261-
mkNixDoc opInfo $
237+
mkNixDoc
238+
opInfo $
262239
hsep
263240
[ wrapParens (f NAssocLeft) r1
264241
, pretty $ operatorName opInfo
@@ -274,14 +251,14 @@ exprFNixDoc = \case
274251
(pretty (operatorName opInfo) <> wrapParens opInfo r1)
275252
where opInfo = getUnaryOperator op
276253
NSelect r' attr o ->
277-
(if isJust o then leastPrecedence else mkNixDoc selectOp)
278-
$ wrapPath selectOp r
279-
<> "."
280-
<> prettySelector attr
281-
<> ordoc
254+
maybe
255+
(mkNixDoc selectOp)
256+
(const leastPrecedence)
257+
o
258+
$ wrapPath selectOp r <> "." <> prettySelector attr <> ordoc
282259
where
283260
r = mkNixDoc selectOp (wrapParens appOpNonAssoc r')
284-
ordoc = maybe mempty ((" or " <>) . wrapParens appOpNonAssoc) o
261+
ordoc = ((" or " <>) . wrapParens appOpNonAssoc) `ifJust` o
285262
NHasAttr r attr ->
286263
mkNixDoc hasAttrOp (wrapParens hasAttrOp r <> " ? " <> prettySelector attr)
287264
NEnvPath p -> simpleExpr $ pretty ("<" <> p <> ">")
@@ -324,6 +301,10 @@ exprFNixDoc = \case
324301
vsep
325302
["assert " <> withoutParens cond <> ";", align $ withoutParens body]
326303
NSynHole name -> simpleExpr $ pretty ("^" <> name)
304+
where
305+
prettyContainer =
306+
simpleExpr . group . nest 2 . vsep
307+
327308

328309
valueToExpr :: forall t f m . MonadDataContext f m => NValue t f m -> NExpr
329310
valueToExpr = iterNValue (\_ _ -> thk) phi
@@ -365,14 +346,7 @@ prettyNValueProv v =
365346
fillSep
366347
[ prettyNVal
367348
, indent 2 $
368-
"(" <>
369-
mconcat (
370-
"from: "
371-
:
372-
fmap
373-
(prettyOriginExpr . _originExpr)
374-
ps
375-
) <> ")"
349+
"(" <> mconcat ("from: ":(prettyOriginExpr . _originExpr <$> ps)) <> ")"
376350
]
377351
where
378352
prettyNVal = prettyNValue v
@@ -394,7 +368,7 @@ prettyNThunk t =
394368
$ fillSep
395369
[ v'
396370
, indent 2 $
397-
"("<> mconcat ( "thunk from: " : fmap (prettyOriginExpr . _originExpr) ps) <> ")"
371+
"(" <> mconcat ( "thunk from: " : fmap (prettyOriginExpr . _originExpr) ps) <> ")"
398372
]
399373

400374
-- | This function is used only by the testing code.

0 commit comments

Comments
 (0)