@@ -115,7 +115,8 @@ import qualified Distribution.PackageDescription.Configuration as PD
115115import Distribution.Simple.PackageIndex (InstalledPackageIndex )
116116import qualified Distribution.Simple.PackageIndex as InstalledPackageIndex
117117import Distribution.Simple.Setup
118- ( asBool
118+ ( BooleanFlag
119+ , asBool
119120 )
120121import Distribution.Solver.Modular
121122 ( PruneAfterFirstSuccess (.. )
@@ -136,7 +137,8 @@ import Distribution.Types.DependencySatisfaction
136137 ( DependencySatisfaction (.. )
137138 )
138139import Distribution.Verbosity
139- ( normal
140+ ( deafening
141+ , normal
140142 )
141143import Distribution.Version
142144
@@ -171,6 +173,7 @@ import Data.List
171173 )
172174import qualified Data.Map as Map
173175import qualified Data.Set as Set
176+ import Text.PrettyPrint
174177
175178-- ------------------------------------------------------------
176179
@@ -214,45 +217,48 @@ data DepResolverParams = DepResolverParams
214217
215218showDepResolverParams :: DepResolverParams -> String
216219showDepResolverParams p =
217- " targets: "
218- ++ intercalate " , " ( map prettyShow $ Set. toList (depResolverTargets p))
219- ++ " \n constraints: "
220- ++ concatMap
221- (( " \n " ++ ) . showLabeledConstraint)
222- ( depResolverConstraints p)
223- ++ " \n preferences: "
224- ++ concatMap
225- (( " \n " ++ ) . showPackagePreference)
226- (depResolverPreferences p)
227- ++ " \n strategy: "
228- ++ show (depResolverPreferenceDefault p)
229- ++ " \n reorder goals: "
230- ++ show (asBool (depResolverReorderGoals p))
231- ++ " \n count conflicts: "
232- ++ show (asBool (depResolverCountConflicts p) )
233- ++ " \n fine grained conflicts: "
234- ++ show (asBool (depResolverFineGrainedConflicts p) )
235- ++ " \n minimize conflict set: "
236- ++ show (asBool (depResolverMinimizeConflictSet p) )
237- ++ " \n avoid reinstalls: "
238- ++ show (asBool (depResolverAvoidReinstalls p) )
239- ++ " \n shadow packages: "
240- ++ show (asBool (depResolverShadowPkgs p) )
241- ++ " \n strong flags: "
242- ++ show (asBool (depResolverStrongFlags p) )
243- ++ " \n allow boot library installs: "
244- ++ show (asBool (depResolverAllowBootLibInstalls p) )
245- ++ " \n only constrained packages: "
246- ++ show (depResolverOnlyConstrained p)
247- ++ " \n max 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