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

27 lines
942 B
Haskell
Raw Normal View History

module Language.Haskell.GhcMod.PkgDoc (pkgDoc) where
2014-03-27 07:22:49 +00:00
import Language.Haskell.GhcMod.Types
import Language.Haskell.GhcMod.GhcPkg
import Language.Haskell.GhcMod.Monad
2014-08-31 21:08:04 +00:00
import Language.Haskell.GhcMod.Utils
import Control.Applicative ((<$>))
2014-03-27 07:22:49 +00:00
-- | Obtaining the package name and the doc path of a module.
pkgDoc :: IOish m => String -> GhcModT m String
2014-08-31 21:08:04 +00:00
pkgDoc mdl = do
c <- cradle
pkg <- liftIO $ trim <$> readProcess "ghc-pkg" (toModuleOpts c) ""
2014-03-27 07:40:34 +00:00
if pkg == "" then
return "\n"
else do
htmlpath <- liftIO $ readProcess "ghc-pkg" (toDocDirOpts pkg c) ""
2014-03-27 07:40:34 +00:00
let ret = pkg ++ " " ++ drop 14 htmlpath
return ret
2014-03-27 07:22:49 +00:00
where
toModuleOpts c = ["find-module", mdl, "--simple-output"]
++ ghcPkgDbStackOpts (cradlePkgDbStack c)
toDocDirOpts pkg c = ["field", pkg, "haddock-html"]
++ ghcPkgDbStackOpts (cradlePkgDbStack c)
trim = takeWhile (`notElem` " \n")