leksah-0.15.1.0: Haskell IDE written in Haskell

Safe HaskellNone
LanguageHaskell98

IDE.Core.State

Contents

Description

The core state of ide. This module is imported from every other module, | and all data structures of the state are declared here, to avoid circular | module dependencies.

Synopsis

Documentation

Convenience methods for accesing the IDE State

readIDE :: MonadIDE m => (IDE -> beta) -> m beta Source

Read an attribute of the contents

modifyIDE :: MonadIDE m => (IDE -> (IDE, beta)) -> m beta Source

Variation on modifyIDE_ that lets you return a value

modifyIDE_ :: MonadIDE m => (IDE -> IDE) -> m () Source

Modify the contents, without returning a value

withIDE :: MonadIDE m => (IDE -> IO alpha) -> m alpha Source

reifyIDE :: MonadIDE m => (IDERef -> IO a) -> m a Source

A reader monad for a mutable reference to the IDE state

reflectIDEI :: Sink a IDEM () -> IDERef -> Sink a IO () Source

catchIDE :: Exception e => IDEM a -> (e -> IO a) -> IDEM a Source

onIDE :: MonadIO m => object -> Signal object (m1 a) -> ReaderT r m1 a -> ReaderT r m (ConnectId object) Source

logMessage :: MonadIDE m => Text -> LogTag -> m () Source

liftYi :: YiM a -> IDEM a Source

leksahSubDir Source

Arguments

:: FilePath

Sub directory to look for

-> IO (Maybe FilePath) 

Find a directory relative to the leksah install directory

leksahOrPackageDir Source

Arguments

:: FilePath

Sub directory to look for

-> IO FilePath

Used to get the package dir if we can't find the leksah one

-> IO FilePath 

Get the leksah data dir based on the executable name or if that fails use the directroy for the package. This is allows us to make binary packages where the data directory id relative to the leksah executable. This is important for Wind32 where setting environment variables for the locations in a launch script causes problems (you can't pin the exe).