Skip to content

Commit ac8916a

Browse files
committed
refactor(cabal-install): use a pretty printer in showDepResolverParams
1 parent a70bb7d commit ac8916a

File tree

1 file changed

+46
-40
lines changed

1 file changed

+46
-40
lines changed

cabal-install/src/Distribution/Client/Dependency.hs

Lines changed: 46 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,8 @@ import qualified Distribution.PackageDescription.Configuration as PD
115115
import Distribution.Simple.PackageIndex (InstalledPackageIndex)
116116
import qualified Distribution.Simple.PackageIndex as InstalledPackageIndex
117117
import Distribution.Simple.Setup
118-
( asBool
118+
( BooleanFlag
119+
, asBool
119120
)
120121
import Distribution.Solver.Modular
121122
( PruneAfterFirstSuccess (..)
@@ -136,7 +137,8 @@ import Distribution.Types.DependencySatisfaction
136137
( DependencySatisfaction (..)
137138
)
138139
import Distribution.Verbosity
139-
( normal
140+
( deafening
141+
, normal
140142
)
141143
import Distribution.Version
142144

@@ -171,6 +173,7 @@ import Data.List
171173
)
172174
import qualified Data.Map as Map
173175
import qualified Data.Set as Set
176+
import Text.PrettyPrint
174177

175178
-- ------------------------------------------------------------
176179

@@ -214,45 +217,48 @@ data DepResolverParams = DepResolverParams
214217

215218
showDepResolverParams :: DepResolverParams -> String
216219
showDepResolverParams p =
217-
"targets: "
218-
++ intercalate ", " (map prettyShow $ Set.toList (depResolverTargets p))
219-
++ "\nconstraints: "
220-
++ concatMap
221-
(("\n " ++) . showLabeledConstraint)
222-
(depResolverConstraints p)
223-
++ "\npreferences: "
224-
++ concatMap
225-
(("\n " ++) . showPackagePreference)
226-
(depResolverPreferences p)
227-
++ "\nstrategy: "
228-
++ show (depResolverPreferenceDefault p)
229-
++ "\nreorder goals: "
230-
++ show (asBool (depResolverReorderGoals p))
231-
++ "\ncount conflicts: "
232-
++ show (asBool (depResolverCountConflicts p))
233-
++ "\nfine grained conflicts: "
234-
++ show (asBool (depResolverFineGrainedConflicts p))
235-
++ "\nminimize conflict set: "
236-
++ show (asBool (depResolverMinimizeConflictSet p))
237-
++ "\navoid reinstalls: "
238-
++ show (asBool (depResolverAvoidReinstalls p))
239-
++ "\nshadow packages: "
240-
++ show (asBool (depResolverShadowPkgs p))
241-
++ "\nstrong flags: "
242-
++ show (asBool (depResolverStrongFlags p))
243-
++ "\nallow boot library installs: "
244-
++ show (asBool (depResolverAllowBootLibInstalls p))
245-
++ "\nonly constrained packages: "
246-
++ show (depResolverOnlyConstrained p)
247-
++ "\nmax backjumps: "
248-
++ maybe
249-
"infinite"
250-
show
251-
(depResolverMaxBackjumps p)
220+
render $
221+
vcat
222+
[ hang (text "targets:") 2 $
223+
vcat [text (prettyShow pkgname) | pkgname <- Set.toList (depResolverTargets p)]
224+
, hang (text "constraints:") 2 $
225+
vcat [prettyLabeledConstraint lc | lc <- depResolverConstraints p]
226+
, hang (text "constraints:") 2 $
227+
vcat [prettyLabeledConstraint lc | lc <- depResolverConstraints p]
228+
, hang (text "preferences:") 2 $
229+
if depResolverVerbosity p >= deafening
230+
then vcat [text (showPackagePreference pref) | pref <- depResolverPreferences p]
231+
else text "... increase verbosity to see"
232+
, hang (text "strategy:") 2 $
233+
text (show (depResolverPreferenceDefault p))
234+
, hang (text "reorder goals:") 2 $
235+
prettyBool (depResolverReorderGoals p)
236+
, hang (text "count conflicts:") 2 $
237+
prettyBool (depResolverCountConflicts p)
238+
, hang (text "fine grained conflicts:") 2 $
239+
prettyBool (depResolverFineGrainedConflicts p)
240+
, hang (text "minimize conflict set:") 2 $
241+
prettyBool (depResolverMinimizeConflictSet p)
242+
, hang (text "avoid reinstalls:") 2 $
243+
prettyBool (depResolverAvoidReinstalls p)
244+
, hang (text "shadow packages:") 2 $
245+
prettyBool (depResolverShadowPkgs p)
246+
, hang (text "strong flags:") 2 $
247+
prettyBool (depResolverStrongFlags p)
248+
, hang (text "allow boot library installs:") 2 $
249+
prettyBool (depResolverAllowBootLibInstalls p)
250+
, hang (text "only constrained packages:") 2 $
251+
text (show (depResolverOnlyConstrained p))
252+
, hang (text "max backjumps:") 2 $
253+
text (maybe "infinite" show (depResolverMaxBackjumps p))
254+
]
252255
where
253-
showLabeledConstraint :: LabeledPackageConstraint -> String
254-
showLabeledConstraint (LabeledPackageConstraint pc src) =
255-
showPackageConstraint pc ++ " (" ++ showConstraintSource src ++ ")"
256+
prettyBool :: BooleanFlag a => a -> Doc
257+
prettyBool = pretty . asBool
258+
259+
prettyLabeledConstraint :: LabeledPackageConstraint -> Doc
260+
prettyLabeledConstraint (LabeledPackageConstraint pc src) =
261+
pretty pc <+> parens (pretty src)
256262

257263
-- | A package selection preference for a particular package.
258264
--

0 commit comments

Comments
 (0)