ghc-mod/Language/Haskell/GhcMod/Boot.hs

37 lines
974 B
Haskell
Raw Normal View History

2014-04-30 01:49:25 +00:00
module Language.Haskell.GhcMod.Boot where
2014-04-21 02:57:14 +00:00
import Control.Applicative ((<$>))
2014-04-30 01:49:25 +00:00
import CoreMonad (liftIO, liftIO)
import Language.Haskell.GhcMod.Browse
import Language.Haskell.GhcMod.Flag
import Language.Haskell.GhcMod.Lang
import Language.Haskell.GhcMod.List
2014-05-10 11:51:35 +00:00
import Language.Haskell.GhcMod.Monad
2014-04-30 01:49:25 +00:00
import Language.Haskell.GhcMod.Types
2014-04-21 02:57:14 +00:00
2014-04-30 01:51:34 +00:00
-- | Printing necessary information for front-end booting.
2014-05-10 11:51:35 +00:00
bootInfo :: Options -> IO String
bootInfo opt = runGhcMod opt $ boot
2014-04-21 02:57:14 +00:00
2014-04-30 01:51:34 +00:00
-- | Printing necessary information for front-end booting.
2014-05-10 11:51:35 +00:00
boot :: GhcMod String
boot = do
opt <- options
mods <- modules
2014-04-21 07:30:31 +00:00
langs <- liftIO $ listLanguages opt
flags <- liftIO $ listFlags opt
2014-05-10 13:10:34 +00:00
pre <- concat <$> mapM browse preBrowsedModules
2014-04-21 07:30:31 +00:00
return $ mods ++ langs ++ flags ++ pre
2014-04-21 02:57:14 +00:00
preBrowsedModules :: [String]
preBrowsedModules = [
"Prelude"
, "Control.Applicative"
, "Control.Exception"
, "Control.Monad"
, "Data.Char"
, "Data.List"
, "Data.Maybe"
, "System.IO"
]