yi-core-0.19.4: Yi editor core library

Safe Haskell | None
Language | Haskell2010

Yi.Config.Simple.Types

Description

exports from Yi.Config.Simple which are useful to "core yi" rather than just config files.

Synopsis

- newtype ConfigM a = ConfigM {
  - runConfigM :: StateT Config IO a
  }
- type Field a = Lens' Config a
- customVariable :: YiConfigVariable a => Field a

# Documentation

newtype ConfigM a Source #

The configuration monad. Run it with `configMain`.

Constructors

ConfigM |

Fields

- runConfigM :: StateT Config IO a

#### Instances

Instances details

Applicative ConfigM Source # |
Instance details Defined in Yi.Config.Simple.Types Methods pure :: a -> ConfigM a Source # (<*>) :: ConfigM (a -> b) -> ConfigM a -> ConfigM b Source # liftA2 :: (a -> b -> c) -> ConfigM a -> ConfigM b -> ConfigM c Source # (*>) :: ConfigM a -> ConfigM b -> ConfigM b Source # (<*) :: ConfigM a -> ConfigM b -> ConfigM a Source #
Functor ConfigM Source # |
Instance details Defined in Yi.Config.Simple.Types Methods fmap :: (a -> b) -> ConfigM a -> ConfigM b Source # (<$) :: a -> ConfigM b -> ConfigM a Source #
Monad ConfigM Source # |
Instance details Defined in Yi.Config.Simple.Types Methods (>>=) :: ConfigM a -> (a -> ConfigM b) -> ConfigM b Source # (>>) :: ConfigM a -> ConfigM b -> ConfigM b Source # return :: a -> ConfigM a Source #
MonadState Config ConfigM Source # |
Instance details Defined in Yi.Config.Simple.Types Methods get :: ConfigM Config Source # put :: Config -> ConfigM () Source # state :: (Config -> (a, Config)) -> ConfigM a Source #
MonadBase IO ConfigM Source # |
Instance details Defined in Yi.Config.Simple.Types Methods liftBase :: IO α -> ConfigM α Source #

type Field a = Lens' Config a Source #

Fields that can be modified with all lens machinery.

customVariable :: YiConfigVariable a => Field a Source #

Accessor for any `YiConfigVariable`, to be used by modules defining `YiConfigVariable`s. Such modules should provide a custom-named field. For instance, take the following hypothetical `YiConfigVariable`:

@newtype UserName = UserName { unUserName :: String } deriving(Typeable, Binary, Default) instance YiConfigVariable UserName

$(nameDeriveAccessors ''UserName (n -> Just (n ++ "A")))

userName :: `Field` `String` userName = unUserNameA `.` `customVariable`@

Here, the hypothetical library would provide the field `userName` to be used in preference to `customVariable`.