hiedb-0.1.0.0: Generates a references DB from .hie files
Safe HaskellNone
LanguageHaskell2010

HieDb.Create

Synopsis

Documentation

checkVersion :: (HieDb -> IO a) -> HieDb -> IO a Source #

checkVersion f db checks the schema version associated with given db. If that version is supported by hiedb, it runs the function f with the db. Otherwise it throws IncompatibleSchemaVersion exception.

withHieDb :: FilePath -> (HieDb -> IO a) -> IO a Source #

Given path to .hiedb file, constructs HieDb and passes it to given function.

withHieDbAndFlags :: LibDir -> FilePath -> (DynFlags -> HieDb -> IO a) -> IO a Source #

Given GHC LibDir and path to .hiedb file, constructs DynFlags (required for printing info from .hie files) and HieDb and passes them to given function.

initConn :: HieDb -> IO () Source #

Initialize database schema for given HieDb.

addArr :: HieDb -> Array TypeIndex HieTypeFlat -> IO (Array TypeIndex (Maybe Int64)) Source #

Add names of types from .hie file to HieDb. Returns an Array mapping TypeIndex to database ID assigned to the corresponding record in DB.

addTypeRefs Source #

Arguments

:: HieDb 
-> FilePath

Path to .hie file

-> HieFile

Data loaded from the .hie file

-> Array TypeIndex (Maybe Int64)

Maps TypeIndex to database ID assigned to record in typenames table

-> IO () 

Add references to types from given .hie file to DB.

addRefsFrom :: (MonadIO m, NameCacheMonad m) => HieDb -> FilePath -> m () Source #

Adds all references from given .hie file to HieDb. The indexing is skipped if the file was not modified since the last time it was indexed.

addRefsFromLoaded Source #

Arguments

:: MonadIO m 
=> HieDb

HieDb into which we're adding the file

-> FilePath

Path to .hie file

-> Maybe FilePath

Path to .hs file from which .hie file was created

-> Bool

Is this a real source file? I.e. does it come from user's project (as opposed to from project's dependency)?

-> UTCTime

The last modification time of the .hie file

-> HieFile

Data loaded from the .hie file

-> m () 

addSrcFile Source #

Arguments

:: HieDb 
-> FilePath

Path to .hie file

-> FilePath

Path to .hs file to be added to DB

-> Bool

Is this a real source file? I.e. does it come from user's project (as opposed to from project's dependency)?

-> IO () 

Add path to .hs source given path to .hie file which has already been indexed. No action is taken if the corresponding .hie file has not been indexed yet.

deleteFileFromIndex :: HieDb -> FilePath -> IO () Source #

Delete all occurrences of given .hie file from the database