@@ -25,9 +25,7 @@ import Data.List ( isPrefixOf
2525 )
2626import Data.List.NonEmpty ( NonEmpty (.. ) )
2727import qualified Data.List.NonEmpty as NE
28- import Data.Maybe ( isJust
29- , fromMaybe
30- )
28+ import Data.Maybe ( fromMaybe )
3129import 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
328309valueToExpr :: forall t f m . MonadDataContext f m => NValue t f m -> NExpr
329310valueToExpr = 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