| Safe Haskell | None | 
|---|---|
| Language | Haskell98 | 
HsDev.Database.Update
Contents
- 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
- type UpdateMonad m = (CommandMonad m, MonadReader UpdateOptions m, MonadWriter [ModuleLocation] m)
- postStatus :: UpdateMonad m => Task -> m ()
- waiter :: UpdateMonad m => m () -> m ()
- updater :: UpdateMonad m => 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] -> Cabal -> m ()
- scanProjectFile :: UpdateMonad m => [String] -> FilePath -> m Project
- scanProject :: UpdateMonad m => [String] -> FilePath -> m ()
- scanDirectory :: UpdateMonad m => [String] -> FilePath -> 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 ()
- liftExceptT :: CommandMonad m => ExceptT String IO a -> m a
- module HsDev.Watcher
- module Control.Monad.Except
Documentation
Constructors
| StatusWorking | |
| StatusOk | |
| StatusError String | 
Constructors
| Progress | |
| Fields 
 | |
Constructors
| Task | |
| Fields | |
data UpdateOptions Source
Constructors
| UpdateOptions | |
| Fields 
 | |
Instances
Constructors
| UpdateM | |
| Fields 
 | |
Instances
| MonadTrans UpdateM Source | |
| Monad m => MonadReader UpdateOptions (UpdateM m) Source | |
| Monad m => MonadError CommandError (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 | |
| Monad m => Applicative (UpdateM m) Source | |
| MonadCatchIO m => MonadCatchIO (UpdateM m) Source | |
| Monad m => Alternative (UpdateM m) Source | |
| Monad m => MonadPlus (UpdateM m) Source | |
| MonadIO m => MonadIO (UpdateM m) Source | |
| MonadCatchIO m => MonadLog (UpdateM m) Source | |
| ServerMonadBase m => SessionMonad (UpdateM m) Source | |
| ServerMonadBase m => CommandMonad (UpdateM m) Source | |
| Monad m => MonadWriter [ModuleLocation] (UpdateM m) Source | |
| type StM (UpdateM m) a = StM (ReaderT UpdateOptions (WriterT [ModuleLocation] (ClientM m))) a Source | 
runUpdate :: ServerMonadBase m => UpdateOptions -> UpdateM m a -> ClientM m a Source
type UpdateMonad m = (CommandMonad m, MonadReader UpdateOptions m, MonadWriter [ModuleLocation] m) Source
postStatus :: UpdateMonad m => Task -> m () Source
Post status
waiter :: UpdateMonad m => m () -> m () Source
Wait DB to complete actions
updater :: UpdateMonad m => 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
scanFile :: UpdateMonad m => [String] -> FilePath -> m () Source
Scan source file
scanFileContents :: UpdateMonad m => [String] -> FilePath -> Maybe String -> m () Source
Scan source file with contents
scanCabal :: UpdateMonad m => [String] -> Cabal -> m () Source
Scan cabal modules
scanProjectFile :: UpdateMonad m => [String] -> FilePath -> m Project Source
Scan project file
scanProject :: UpdateMonad m => [String] -> FilePath -> m () Source
Scan project
scanDirectory :: UpdateMonad m => [String] -> FilePath -> m () Source
Scan directory for source files and projects
scanDocs :: UpdateMonad m => [InspectedModule] -> m () Source
Scan docs for inspected modules
inferModTypes :: UpdateMonad m => [InspectedModule] -> m () Source
Arguments
| :: 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
Helpers
liftExceptT :: CommandMonad m => ExceptT String IO a -> m a Source
module HsDev.Watcher
module Control.Monad.Except