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
- 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
data UpdateOptions Source
UpdateOptions | |
|
UpdateM | |
|
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
:: 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