diff options
-rw-r--r-- | src/Main.hs | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/src/Main.hs b/src/Main.hs index ce1b6814..b3281bf2 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -812,12 +812,12 @@ parseIfaceOption s = (fpath,',':file) -> (fpath,file) (file, _) -> ("", file) -updateHTMLXRefs :: [PackageData] -> IO () +updateHTMLXRefs :: [HaddockPackage] -> IO () updateHTMLXRefs packages = do writeIORef html_xrefs_ref (Map.fromList mapping) where mapping = [ (mod, html) | - (PackageData mods _ html) <- packages, mod <- mods ] + (HaddockPackage mods _ html) <- packages, mod <- mods ] getPrologue :: [Flag] -> IO (Maybe (HsDoc RdrName)) getPrologue flags @@ -1264,7 +1264,7 @@ type ErrMsgM a = Writer [ErrMsg] a -- Packages -------------------------------------------------------------------------------- -data PackageData = PackageData { +data HaddockPackage = HaddockPackage { pdModules :: [Module], pdDocEnv :: DocEnv, pdHtmlPath :: FilePath @@ -1273,16 +1273,9 @@ data PackageData = PackageData { -- | Recreate exposed modules from an InstalledPackageInfo packageModules :: InstalledPackageInfo -> [Module] packageModules pkgInfo = map (mkModule (pkgId pkgInfo)) moduleNames - where moduleNames = map mkModuleName (exposedModules pkgInfo) - -pkgId :: InstalledPackageInfo -> PackageId -pkgId = mkPackageId . package - --- | For each module in the list, try to retrieve a ModuleInfo structure -moduleInfo :: Session -> [Module] -> IO (Maybe [ModuleInfo]) -moduleInfo session modules = do - mbModInfo <- mapM (getModuleInfo session) modules - return (sequence mbModInfo) + where + moduleNames = map mkModuleName (exposedModules pkgInfo) + pkgId = mkPackageId . package -- | Get the Haddock HTML directory path for a package getHtml :: InstalledPackageInfo -> IO FilePath @@ -1302,8 +1295,8 @@ getIface pkgInfo = case haddockInterfaces pkgInfo of "Interface file " ++ file ++ " does not exist." _ -> throwE "No Haddock interface installed." --- | Try to create a PackageData structure for a package -getPackage :: Session -> InstalledPackageInfo -> IO PackageData +-- | Try to create a HaddockPackage structure for a package +getPackage :: Session -> InstalledPackageInfo -> IO HaddockPackage getPackage session pkgInfo = do html <- getHtml pkgInfo @@ -1313,15 +1306,15 @@ getPackage session pkgInfo = do let docEnv = ifDocEnv iface modules = packageModules pkgInfo - return $ PackageData { + return $ HaddockPackage { pdModules = modules, pdDocEnv = docEnv, pdHtmlPath = html } --- | Try to create a PackageData for each package in the session except for --- rts. Print a warning on stdout if a PackageData could not be created. -getPackages :: Session -> [PackageId] -> IO [PackageData] +-- | Try to create a HaddockPackage for each package in the session except for +-- rts. Print a warning on stdout if a HaddockPackage could not be created. +getPackages :: Session -> [PackageId] -> IO [HaddockPackage] getPackages session packages = do -- get InstalledPackageInfos for every package in the session @@ -1332,7 +1325,7 @@ getPackages session packages = do -- html path) for the packages and html path liftM catMaybes $ mapM tryGetPackage pkgInfos where - -- try to get a PackageData, warn if we can't + -- try to get a HaddockPackage, warn if we can't tryGetPackage pkgInfo = (getPackage session pkgInfo >>= return . Just) `catchDyn` @@ -1346,5 +1339,5 @@ getPackages session packages = do -- | Build one big doc env out of a list of packages. If multiple packages -- export the same (original) name, we just pick one of the packages as the -- documentation site. -packagesDocEnv :: [PackageData] -> DocEnv +packagesDocEnv :: [HaddockPackage] -> DocEnv packagesDocEnv packages = Map.unions (map pdDocEnv packages) |