deleting GhcMod.Ghc.
This commit is contained in:
parent
409bc99f10
commit
74e84e89ac
@ -13,6 +13,8 @@ module Language.Haskell.GhcMod (
|
|||||||
, ModuleString
|
, ModuleString
|
||||||
, Expression
|
, Expression
|
||||||
, GhcPkgDb
|
, GhcPkgDb
|
||||||
|
, Symbol
|
||||||
|
, SymbolDb
|
||||||
-- * 'GhcMod' utilities
|
-- * 'GhcMod' utilities
|
||||||
, boot
|
, boot
|
||||||
, browse
|
, browse
|
||||||
@ -21,6 +23,7 @@ module Language.Haskell.GhcMod (
|
|||||||
, debugInfo
|
, debugInfo
|
||||||
, expandTemplate
|
, expandTemplate
|
||||||
, findSymbol
|
, findSymbol
|
||||||
|
, dumpSymbol
|
||||||
, info
|
, info
|
||||||
, lint
|
, lint
|
||||||
, pkgDoc
|
, pkgDoc
|
||||||
@ -31,6 +34,9 @@ module Language.Haskell.GhcMod (
|
|||||||
, modules
|
, modules
|
||||||
, languages
|
, languages
|
||||||
, flags
|
, flags
|
||||||
|
-- * SymbolDb
|
||||||
|
, loadSymbolDb
|
||||||
|
, lookupSymbol
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Language.Haskell.GhcMod.Boot
|
import Language.Haskell.GhcMod.Boot
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
module Language.Haskell.GhcMod.Find (
|
module Language.Haskell.GhcMod.Find (
|
||||||
Symbol
|
Symbol
|
||||||
, SymbolDb
|
, SymbolDb
|
||||||
, getSymbolDb
|
, loadSymbolDb
|
||||||
, lookupSymbol
|
, lookupSymbol
|
||||||
, dumpSymbol
|
, dumpSymbol
|
||||||
, findSymbol
|
, findSymbol
|
||||||
@ -44,10 +44,10 @@ import qualified Data.Map as M
|
|||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
||||||
-- | Type of key for `SymbolDb`.
|
-- | Type of function and operation names.
|
||||||
type Symbol = String
|
type Symbol = String
|
||||||
type Db = Map Symbol [ModuleString]
|
type Db = Map Symbol [ModuleString]
|
||||||
-- | Database from 'Symbol' to modules.
|
-- | Database from 'Symbol' to \['ModuleString'\].
|
||||||
newtype SymbolDb = SymbolDb Db
|
newtype SymbolDb = SymbolDb Db
|
||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
@ -65,23 +65,24 @@ packageConfDir = "package.conf.d"
|
|||||||
|
|
||||||
-- | Finding modules to which the symbol belong.
|
-- | Finding modules to which the symbol belong.
|
||||||
findSymbol :: IOish m => Symbol -> GhcModT m String
|
findSymbol :: IOish m => Symbol -> GhcModT m String
|
||||||
findSymbol sym = convert' =<< lookupSymbol' sym <$> liftIO getSymbolDb
|
findSymbol sym = convert' =<< lookupSymbol' sym <$> liftIO loadSymbolDb
|
||||||
|
|
||||||
lookupSymbol' :: Symbol -> SymbolDb -> [ModuleString]
|
lookupSymbol' :: Symbol -> SymbolDb -> [ModuleString]
|
||||||
lookupSymbol' sym (SymbolDb db) = fromMaybe [] (M.lookup sym db)
|
lookupSymbol' sym (SymbolDb db) = fromMaybe [] (M.lookup sym db)
|
||||||
|
|
||||||
-- | Looking up 'SymbolDb' with 'Symbol' to find modules.
|
-- | Looking up 'SymbolDb' with 'Symbol' to \['ModuleString'\]
|
||||||
|
-- which will be concatenated.
|
||||||
lookupSymbol :: Options -> Symbol -> SymbolDb -> String
|
lookupSymbol :: Options -> Symbol -> SymbolDb -> String
|
||||||
lookupSymbol opt sym db = convert opt $ lookupSymbol' sym db
|
lookupSymbol opt sym db = convert opt $ lookupSymbol' sym db
|
||||||
|
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
|
|
||||||
-- | Creating 'SymbolDb'.
|
-- | Loading a file and creates 'SymbolDb'.
|
||||||
getSymbolDb :: IO SymbolDb
|
loadSymbolDb :: IO SymbolDb
|
||||||
getSymbolDb = SymbolDb <$> loadSymbolDb
|
loadSymbolDb = SymbolDb <$> readSymbolDb
|
||||||
|
|
||||||
loadSymbolDb :: IO Db
|
readSymbolDb :: IO Db
|
||||||
loadSymbolDb = handle (\(SomeException _) -> return M.empty) $ do
|
readSymbolDb = handle (\(SomeException _) -> return M.empty) $ do
|
||||||
file <- chop <$> readProcess "ghc-mod" ["dumpsym"] []
|
file <- chop <$> readProcess "ghc-mod" ["dumpsym"] []
|
||||||
M.fromAscList . map conv . lines <$> readFile file
|
M.fromAscList . map conv . lines <$> readFile file
|
||||||
where
|
where
|
||||||
@ -101,6 +102,9 @@ getPath = do
|
|||||||
[] -> return Nothing
|
[] -> return Nothing
|
||||||
u:_ -> liftIO $ resolvePackageDb df u
|
u:_ -> liftIO $ resolvePackageDb df u
|
||||||
|
|
||||||
|
-- | Dumping a set of ('Symbol',\['ModuleString'\]) to a file
|
||||||
|
-- if the file does not exist or is invalid.
|
||||||
|
-- The file name is printed.
|
||||||
dumpSymbol :: IOish m => GhcModT m String
|
dumpSymbol :: IOish m => GhcModT m String
|
||||||
dumpSymbol = do
|
dumpSymbol = do
|
||||||
mdir <- getPath
|
mdir <- getPath
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
module Language.Haskell.GhcMod.Ghc (
|
|
||||||
-- * 'SymMdlDb'
|
|
||||||
module Language.Haskell.GhcMod.Find
|
|
||||||
) where
|
|
||||||
|
|
||||||
import Language.Haskell.GhcMod.Find
|
|
@ -53,7 +53,6 @@ Library
|
|||||||
GHC-Options: -Wall
|
GHC-Options: -Wall
|
||||||
Default-Extensions: ConstraintKinds, FlexibleContexts
|
Default-Extensions: ConstraintKinds, FlexibleContexts
|
||||||
Exposed-Modules: Language.Haskell.GhcMod
|
Exposed-Modules: Language.Haskell.GhcMod
|
||||||
Language.Haskell.GhcMod.Ghc
|
|
||||||
Language.Haskell.GhcMod.Monad
|
Language.Haskell.GhcMod.Monad
|
||||||
Language.Haskell.GhcMod.Internal
|
Language.Haskell.GhcMod.Internal
|
||||||
Other-Modules: Language.Haskell.GhcMod.Boot
|
Other-Modules: Language.Haskell.GhcMod.Boot
|
||||||
|
@ -10,7 +10,6 @@ import qualified Control.Exception as E
|
|||||||
import Data.Typeable (Typeable)
|
import Data.Typeable (Typeable)
|
||||||
import Data.Version (showVersion)
|
import Data.Version (showVersion)
|
||||||
import Language.Haskell.GhcMod
|
import Language.Haskell.GhcMod
|
||||||
import Language.Haskell.GhcMod.Ghc
|
|
||||||
import Language.Haskell.GhcMod.Monad
|
import Language.Haskell.GhcMod.Monad
|
||||||
import Paths_ghc_mod
|
import Paths_ghc_mod
|
||||||
import System.Console.GetOpt (OptDescr(..), ArgDescr(..), ArgOrder(..))
|
import System.Console.GetOpt (OptDescr(..), ArgDescr(..), ArgOrder(..))
|
||||||
|
@ -34,7 +34,6 @@ import Data.Version (showVersion)
|
|||||||
import GHC (GhcMonad)
|
import GHC (GhcMonad)
|
||||||
import qualified GHC as G
|
import qualified GHC as G
|
||||||
import Language.Haskell.GhcMod
|
import Language.Haskell.GhcMod
|
||||||
import Language.Haskell.GhcMod.Ghc
|
|
||||||
import Language.Haskell.GhcMod.Monad
|
import Language.Haskell.GhcMod.Monad
|
||||||
import Paths_ghc_mod
|
import Paths_ghc_mod
|
||||||
import System.Console.GetOpt
|
import System.Console.GetOpt
|
||||||
@ -116,7 +115,7 @@ replace (x:xs) = x : replace xs
|
|||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
||||||
setupDB :: MVar SymbolDb -> IO ()
|
setupDB :: MVar SymbolDb -> IO ()
|
||||||
setupDB mvar = getSymbolDb >>= putMVar mvar
|
setupDB mvar = loadSymbolDb >>= putMVar mvar
|
||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user