diff --git a/Language/Haskell/GhcMod/List.hs b/Language/Haskell/GhcMod/List.hs index 311d02b..3f47313 100644 --- a/Language/Haskell/GhcMod/List.hs +++ b/Language/Haskell/GhcMod/List.hs @@ -13,14 +13,21 @@ import UniqFM -- | Listing installed modules. listModules :: Options -> Cradle -> IO String -listModules opt cradle = convert opt . nub . sort <$> withGHCDummyFile (listMods opt cradle) +listModules opt cradle = convert opt . nub . sort . map dropPkgs <$> withGHCDummyFile (listMods opt cradle) + where + dropPkgs (name, pkg) + | detailed opt = name ++ " " ++ pkg + | otherwise = name -- | Listing installed modules. -listMods :: Options -> Cradle -> Ghc [String] +listMods :: Options -> Cradle -> Ghc [(String, String)] listMods opt cradle = do void $ initializeFlagsWithCradle opt cradle [] False getExposedModules <$> getSessionDynFlags where - getExposedModules = map moduleNameString - . concatMap exposedModules + getExposedModules = concatMap exposedModules' . eltsUFM . pkgIdMap . pkgState + exposedModules' p = + map moduleNameString (exposedModules p) + `zip` + repeat (display $ sourcePackageId p) diff --git a/src/GHCMod.hs b/src/GHCMod.hs index 7ac88ad..3271109 100644 --- a/src/GHCMod.hs +++ b/src/GHCMod.hs @@ -24,7 +24,7 @@ ghcOptHelp = " [-g GHC_opt1 -g GHC_opt2 ...] " usage :: String usage = "ghc-mod version " ++ showVersion version ++ "\n" ++ "Usage:\n" - ++ "\t ghc-mod list" ++ ghcOptHelp ++ "[-l]\n" + ++ "\t ghc-mod list" ++ ghcOptHelp ++ "[-l] [-d]\n" ++ "\t ghc-mod lang [-l]\n" ++ "\t ghc-mod flag [-l]\n" ++ "\t ghc-mod browse" ++ ghcOptHelp ++ "[-l] [-o] [-d] [ ...]\n"