11{-# LANGUAGE DeriveGeneric #-}
2- {-# LANGUAGE LambdaCase #-}
32
43module Distribution.Solver.Types.ProjectConfigPath
54 (
@@ -11,6 +10,7 @@ module Distribution.Solver.Types.ProjectConfigPath
1110
1211 -- * Messages
1312 , docProjectConfigPath
13+ , docProjectConfigPaths
1414 , cyclicalImportMsg
1515 , docProjectConfigPathFailReason
1616
@@ -56,13 +56,51 @@ instance Structured ProjectConfigPath
5656-- imported by: B.config
5757-- imported by: A.project
5858-- @
59- -- >>> render . docProjectConfigPath $ ProjectConfigPath $ "D.config" :| ["C.config", "B.config", "A.project" ]
59+ -- >>> render . docProjectConfigPath $ ProjectConfigPath $ "D.config" :| ["C.config", "B.config", "A.project"]
6060-- "D.config\n imported by: C.config\n imported by: B.config\n imported by: A.project"
6161docProjectConfigPath :: ProjectConfigPath -> Doc
6262docProjectConfigPath (ProjectConfigPath (p :| [] )) = text p
6363docProjectConfigPath (ProjectConfigPath (p :| ps)) = vcat $
6464 text p : [ text " " <+> text " imported by:" <+> text l | l <- ps ]
6565
66+ -- | Renders the paths as a list without showing which path imports another,
67+ -- like this;
68+ -- @
69+ -- - cabal.project
70+ -- - project-cabal/constraints.config
71+ -- - project-cabal/ghc-latest.config
72+ -- - project-cabal/ghc-options.config
73+ -- - project-cabal/pkgs.config
74+ -- - project-cabal/pkgs/benchmarks.config
75+ -- - project-cabal/pkgs/buildinfo.config
76+ -- - project-cabal/pkgs/cabal.config
77+ -- - project-cabal/pkgs/install.config
78+ -- - project-cabal/pkgs/integration-tests.config
79+ -- - project-cabal/pkgs/tests.config
80+ -- @
81+ --
82+ -- >>> :{
83+ -- do
84+ -- let ps =
85+ -- [ ProjectConfigPath ("cabal.project" :| [])
86+ -- , ProjectConfigPath ("project-cabal/constraints.config" :| ["cabal.project"])
87+ -- , ProjectConfigPath ("project-cabal/ghc-latest.config" :| ["cabal.project"])
88+ -- , ProjectConfigPath ("project-cabal/ghc-options.config" :| ["cabal.project"])
89+ -- , ProjectConfigPath ("project-cabal/pkgs.config" :| ["cabal.project"])
90+ -- , ProjectConfigPath ("project-cabal/pkgs/benchmarks.config" :| ["project-cabal/pkgs.config","cabal.project"])
91+ -- , ProjectConfigPath ("project-cabal/pkgs/buildinfo.config" :| ["project-cabal/pkgs.config","cabal.project"])
92+ -- , ProjectConfigPath ("project-cabal/pkgs/cabal.config" :| ["project-cabal/pkgs.config","cabal.project"])
93+ -- , ProjectConfigPath ("project-cabal/pkgs/install.config" :| ["project-cabal/pkgs.config","cabal.project"])
94+ -- , ProjectConfigPath ("project-cabal/pkgs/integration-tests.config" :| ["project-cabal/pkgs.config","cabal.project"])
95+ -- , ProjectConfigPath ("project-cabal/pkgs/tests.config" :| ["project-cabal/pkgs.config","cabal.project"])
96+ -- ]
97+ -- return . render $ docProjectConfigPaths ps
98+ -- :}
99+ -- "- cabal.project\n- project-cabal/constraints.config\n- project-cabal/ghc-latest.config\n- project-cabal/ghc-options.config\n- project-cabal/pkgs.config\n- project-cabal/pkgs/benchmarks.config\n- project-cabal/pkgs/buildinfo.config\n- project-cabal/pkgs/cabal.config\n- project-cabal/pkgs/install.config\n- project-cabal/pkgs/integration-tests.config\n- project-cabal/pkgs/tests.config"
100+ docProjectConfigPaths :: [ProjectConfigPath ] -> Doc
101+ docProjectConfigPaths ps = vcat
102+ [ text " -" <+> text p | ProjectConfigPath (p :| _) <- ps ]
103+
66104-- | A message for a cyclical import, assuming the head of the path is the
67105-- duplicate.
68106cyclicalImportMsg :: ProjectConfigPath -> Doc
0 commit comments