Safe Haskell | None |
---|---|
Language | Haskell98 |
- data Status
- data Progress = Progress {}
- data Task = Task {}
- isStatus :: Value -> Bool
- data UpdateOptions = UpdateOptions {
- _updateTasks :: [Task]
- _updateGhcOpts :: [String]
- _updateDocs :: Bool
- _updateInfer :: Bool
- newtype UpdateM m a = UpdateM {
- runUpdateM :: ReaderT UpdateOptions (WriterT [ModuleLocation] (ClientM m)) a
- runUpdate :: ServerMonadBase m => UpdateOptions -> UpdateM m a -> ClientM m a
- postStatus :: UpdateMonad m => Task -> m ()
- waiter :: UpdateMonad m => m () -> m ()
- updater :: UpdateMonad m => Database -> m ()
- loadCache :: UpdateMonad m => (FilePath -> ExceptT String IO Structured) -> m Database
- getCache :: UpdateMonad m => (FilePath -> ExceptT String IO Structured) -> (Database -> Database) -> m Database
- runTask :: (Display t, UpdateMonad m, NFData a) => String -> t -> m a -> m a
- runTasks :: UpdateMonad m => [m ()] -> m ()
- readDB :: SessionMonad m => m Database
- scanModule :: UpdateMonad m => [String] -> ModuleLocation -> Maybe String -> m ()
- scanModules :: UpdateMonad m => [String] -> [ModuleToScan] -> m ()
- scanFile :: UpdateMonad m => [String] -> FilePath -> m ()
- scanFileContents :: UpdateMonad m => [String] -> FilePath -> Maybe String -> m ()
- scanCabal :: UpdateMonad m => [String] -> m ()
- prepareSandbox :: UpdateMonad m => Sandbox -> m ()
- scanSandbox :: UpdateMonad m => [String] -> Sandbox -> m ()
- scanPackageDb :: UpdateMonad m => [String] -> PackageDbStack -> m ()
- scanProjectFile :: UpdateMonad m => [String] -> FilePath -> m Project
- scanProjectStack :: UpdateMonad m => [String] -> FilePath -> m ()
- scanProject :: UpdateMonad m => [String] -> FilePath -> m ()
- scanDirectory :: UpdateMonad m => [String] -> FilePath -> m ()
- scanContents :: UpdateMonad m => [String] -> ScanContents -> m ()
- scanDocs :: UpdateMonad m => [InspectedModule] -> m ()
- inferModTypes :: UpdateMonad m => [InspectedModule] -> m ()
- scan :: UpdateMonad m => (FilePath -> ExceptT String IO Structured) -> (Database -> Database) -> [ModuleToScan] -> [String] -> ([ModuleToScan] -> m ()) -> m ()
- updateEvent :: ServerMonadBase m => Watched -> Event -> UpdateM m ()
- processEvent :: UpdateOptions -> Watched -> Event -> ClientM IO ()
- module HsDev.Database.Update.Types
- module HsDev.Watcher
- module Control.Monad.Except
Documentation
data UpdateOptions Source #
UpdateOptions | |
|
Default UpdateOptions Source # | |
Monad m => MonadReader UpdateOptions (UpdateM m) Source # | |
UpdateM | |
|
MonadTrans UpdateM Source # | |
Monad m => MonadReader UpdateOptions (UpdateM m) Source # | |
MonadBase b m => MonadBase b (UpdateM m) Source # | |
MonadBaseControl b m => MonadBaseControl b (UpdateM m) Source # | |
Monad m => Monad (UpdateM m) Source # | |
Functor m => Functor (UpdateM m) Source # | |
Applicative m => Applicative (UpdateM m) Source # | |
Alternative m => Alternative (UpdateM m) Source # | |
MonadPlus m => MonadPlus (UpdateM m) Source # | |
MonadIO m => MonadIO (UpdateM m) Source # | |
MonadThrow m => MonadThrow (UpdateM m) Source # | |
MonadCatch m => MonadCatch (UpdateM m) Source # | |
MonadMask m => MonadMask (UpdateM m) Source # | |
(MonadIO m, MonadMask m) => MonadLog (UpdateM m) Source # | |
ServerMonadBase m => CommandMonad (UpdateM m) Source # | |
ServerMonadBase m => SessionMonad (UpdateM m) Source # | |
Monad m => MonadWriter [ModuleLocation] (UpdateM m) Source # | |
type StM (UpdateM m) a Source # | |
runUpdate :: ServerMonadBase m => UpdateOptions -> UpdateM m a -> ClientM m a Source #
postStatus :: UpdateMonad m => Task -> m () Source #
Post status
waiter :: UpdateMonad m => m () -> m () Source #
Wait DB to complete actions
updater :: UpdateMonad m => Database -> m () Source #
Update task result to database
loadCache :: UpdateMonad m => (FilePath -> ExceptT String IO Structured) -> m Database Source #
Get data from cache without updating DB
getCache :: UpdateMonad m => (FilePath -> ExceptT String IO Structured) -> (Database -> Database) -> m Database Source #
Load data from cache if not loaded yet and wait
runTasks :: UpdateMonad m => [m ()] -> m () Source #
Run many tasks with numeration
readDB :: SessionMonad m => m Database Source #
Get database value
scanModule :: UpdateMonad m => [String] -> ModuleLocation -> Maybe String -> m () Source #
Scan module
scanModules :: UpdateMonad m => [String] -> [ModuleToScan] -> m () Source #
Scan modules
scanFileContents :: UpdateMonad m => [String] -> FilePath -> Maybe String -> m () Source #
Scan source file with contents
scanCabal :: UpdateMonad m => [String] -> m () Source #
Scan cabal modules, doesn't rescan if already scanned
prepareSandbox :: UpdateMonad m => Sandbox -> m () Source #
Prepare sandbox for scanning. This is used for stack project to build & configure.
scanSandbox :: UpdateMonad m => [String] -> Sandbox -> m () Source #
Scan sandbox modules, doesn't rescan if already scanned
scanPackageDb :: UpdateMonad m => [String] -> PackageDbStack -> m () Source #
Scan top of package-db stack, usable for rescan
scanProjectFile :: UpdateMonad m => [String] -> FilePath -> m Project Source #
Scan project file
scanProjectStack :: UpdateMonad m => [String] -> FilePath -> m () Source #
Scan project and related package-db stack
scanProject :: UpdateMonad m => [String] -> FilePath -> m () Source #
Scan project
scanDirectory :: UpdateMonad m => [String] -> FilePath -> m () Source #
Scan directory for source files and projects
scanContents :: UpdateMonad m => [String] -> ScanContents -> m () Source #
scanDocs :: UpdateMonad m => [InspectedModule] -> m () Source #
Scan docs for inspected modules
inferModTypes :: UpdateMonad m => [InspectedModule] -> m () Source #
:: UpdateMonad m | |
=> (FilePath -> ExceptT String IO Structured) | Read data from cache |
-> (Database -> Database) | Get data from database |
-> [ModuleToScan] | Actual modules. Other modules will be removed from database |
-> [String] | Extra scan options |
-> ([ModuleToScan] -> m ()) | Function to update changed modules |
-> m () |
Generic scan function. Reads cache only if data is not already loaded, removes obsolete modules and rescans changed modules.
updateEvent :: ServerMonadBase m => Watched -> Event -> UpdateM m () Source #
processEvent :: UpdateOptions -> Watched -> Event -> ClientM IO () Source #
module HsDev.Database.Update.Types
module HsDev.Watcher
module Control.Monad.Except