ghc-modi boot.

This commit is contained in:
Kazu Yamamoto
2014-04-21 16:30:31 +09:00
parent 152b218813
commit 4764ff1acb
4 changed files with 38 additions and 10 deletions

View File

@@ -31,17 +31,17 @@ browseModule :: Options
-> Cradle
-> ModuleString -- ^ A module name. (e.g. \"Data.List\")
-> IO String
browseModule opt cradle mdlName = withGHCDummyFile (browse opt cradle mdlName)
browseModule opt cradle mdlName = withGHCDummyFile $ do
void $ initializeFlagsWithCradle opt cradle [] False
browse opt mdlName
-- | Getting functions, classes, etc from a module.
-- If 'detailed' is 'True', their types are also obtained.
-- If 'operators' is 'True', operators are also returned.
browse :: Options
-> Cradle
-> ModuleString -- ^ A module name. (e.g. \"Data.List\")
-> Ghc String
browse opt cradle mdlName = do
void $ initializeFlagsWithCradle opt cradle [] False
browse opt mdlName = do
convert opt . sort <$> (getModule >>= G.getModuleInfo >>= listExports)
where
getModule = G.findModule mdlname mpkgid `G.gcatch` fallback

View File

@@ -14,14 +14,15 @@ import UniqFM (eltsUFM)
-- | Listing installed modules.
listModules :: Options -> Cradle -> IO String
listModules opt cradle = withGHCDummyFile (modules opt cradle)
listModules opt cradle = withGHCDummyFile $ do
void $ initializeFlagsWithCradle opt cradle [] False
modules opt
-- | Listing installed modules.
modules :: Options -> Cradle -> Ghc String
modules opt cradle = do
void $ initializeFlagsWithCradle opt cradle [] False
convert opt . nub . sort . map dropPkgs . getExposedModules <$> G.getSessionDynFlags
modules :: Options -> Ghc String
modules opt = convert opt . arrange <$> G.getSessionDynFlags
where
arrange = nub . sort . map dropPkgs . getExposedModules
getExposedModules = concatMap exposedModules'
. eltsUFM . pkgIdMap . G.pkgState
exposedModules' p =