1
1
{-# LANGUAGE DeriveGeneric #-}
2
- {-# LANGUAGE LambdaCase #-}
3
2
4
3
module Distribution.Solver.Types.ProjectConfigPath
5
4
(
@@ -11,6 +10,7 @@ module Distribution.Solver.Types.ProjectConfigPath
11
10
12
11
-- * Messages
13
12
, docProjectConfigPath
13
+ , docProjectConfigPaths
14
14
, cyclicalImportMsg
15
15
, docProjectConfigPathFailReason
16
16
@@ -56,13 +56,51 @@ instance Structured ProjectConfigPath
56
56
-- imported by: B.config
57
57
-- imported by: A.project
58
58
-- @
59
- -- >>> render . docProjectConfigPath $ ProjectConfigPath $ "D.config" :| ["C.config", "B.config", "A.project" ]
59
+ -- >>> render . docProjectConfigPath $ ProjectConfigPath $ "D.config" :| ["C.config", "B.config", "A.project"]
60
60
-- "D.config\n imported by: C.config\n imported by: B.config\n imported by: A.project"
61
61
docProjectConfigPath :: ProjectConfigPath -> Doc
62
62
docProjectConfigPath (ProjectConfigPath (p :| [] )) = text p
63
63
docProjectConfigPath (ProjectConfigPath (p :| ps)) = vcat $
64
64
text p : [ text " " <+> text " imported by:" <+> text l | l <- ps ]
65
65
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
+
66
104
-- | A message for a cyclical import, assuming the head of the path is the
67
105
-- duplicate.
68
106
cyclicalImportMsg :: ProjectConfigPath -> Doc
0 commit comments