ribosome-0.4.0.0: api extensions for nvim-hs
Safe HaskellNone
LanguageHaskell2010

Ribosome.Control.Monad.Ribo

Documentation

newtype Ribo s e a Source #

Constructors

Ribo 

Fields

Instances

Instances details
DeepLenses s s' => MonadDeepState s s' (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

get :: Ribo s e s'

put :: s' -> Ribo s e ()

stateM :: (s' -> Ribo s e (a, s')) -> Ribo s e a

state :: (s' -> (a, s')) -> Ribo s e a

modifyM' :: (s' -> Ribo s e s') -> Ribo s e s'

modify :: (s' -> s') -> Ribo s e ()

RpcHandler e (Ribosome s) (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

native :: Ribo s e a -> ExceptT e (Neovim (Ribosome s)) a Source #

MonadError e (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

throwError :: e -> Ribo s e a #

catchError :: Ribo s e a -> (e -> Ribo s e a) -> Ribo s e a #

MonadBase IO (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

liftBase :: IO α -> Ribo s e α #

MonadBaseControl IO (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Associated Types

type StM (Ribo s e) a #

Methods

liftBaseWith :: (RunInBase (Ribo s e) IO -> IO a) -> Ribo s e a #

restoreM :: StM (Ribo s e) a -> Ribo s e a #

DeepPrisms e RpcError => NvimE e (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

MonadReader (Ribosome s) (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

ask :: Ribo s e (Ribosome s) #

local :: (Ribosome s -> Ribosome s) -> Ribo s e a -> Ribo s e a #

reader :: (Ribosome s -> a) -> Ribo s e a #

Monad (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

(>>=) :: Ribo s e a -> (a -> Ribo s e b) -> Ribo s e b #

(>>) :: Ribo s e a -> Ribo s e b -> Ribo s e b #

return :: a -> Ribo s e a #

Functor (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

fmap :: (a -> b) -> Ribo s e a -> Ribo s e b #

(<$) :: a -> Ribo s e b -> Ribo s e a #

MonadFail (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

fail :: String -> Ribo s e a #

Applicative (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

pure :: a -> Ribo s e a #

(<*>) :: Ribo s e (a -> b) -> Ribo s e a -> Ribo s e b #

liftA2 :: (a -> b -> c) -> Ribo s e a -> Ribo s e b -> Ribo s e c #

(*>) :: Ribo s e a -> Ribo s e b -> Ribo s e b #

(<*) :: Ribo s e a -> Ribo s e b -> Ribo s e a #

MonadIO (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

liftIO :: IO a -> Ribo s e a #

MonadResource (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

liftResourceT :: ResourceT IO a -> Ribo s e a #

MonadThrow (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

throwM :: Exception e0 => e0 -> Ribo s e a #

MonadCatch (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

catch :: Exception e0 => Ribo s e a -> (e0 -> Ribo s e a) -> Ribo s e a #

MonadMask (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

mask :: ((forall a. Ribo s e a -> Ribo s e a) -> Ribo s e b) -> Ribo s e b #

uninterruptibleMask :: ((forall a. Ribo s e a -> Ribo s e a) -> Ribo s e b) -> Ribo s e b #

generalBracket :: Ribo s e a -> (a -> ExitCase b -> Ribo s e c) -> (a -> Ribo s e b) -> Ribo s e (b, c) #

MonadRibo (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Nvim (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

call :: Rpc c a => c -> Ribo s e (Either RpcError a) Source #

DeepPrisms e TmuxError => RunTmux (Ribo s e) Source # 
Instance details

Defined in Ribosome.Tmux.Run

Methods

runRiboTmux :: TmuxProg (Ribo s e) b -> Ribo s e b Source #

type StM (Ribo s e) a Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

type StM (Ribo s e) a = Either e a

modifyTMVar :: MonadIO m => (a -> a) -> TMVar a -> m a Source #

safeModifyTMVarM :: MonadIO m => MonadBaseControl IO m => (a -> m a) -> TMVar a -> m a Source #

public :: DeepLenses s s' => Lens' (RibosomeState s) s' Source #

class Monad m => Nvim m where Source #

Methods

call :: Rpc c a => c -> m (Either RpcError a) Source #

Instances

Instances details
(MonadTrans t, Monad (t m), Nvim m) => Nvim (t m) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

call :: Rpc c a => c -> t m (Either RpcError a) Source #

Nvim (Neovim e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

call :: Rpc c a => c -> Neovim e (Either RpcError a) Source #

Nvim (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

Methods

call :: Rpc c a => c -> Ribo s e (Either RpcError a) Source #

class (Nvim m, MonadDeepError e RpcError m) => NvimE e m Source #

Instances

Instances details
(Functor f, MonadDeepError e RpcError m, Nvim m, Monad m) => NvimE e (FreeT f m) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

(DeepPrisms e RpcError, Nvim m, Monad m) => NvimE e (ExceptT e m) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

DeepPrisms e RpcError => NvimE e (Ribo s e) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

acall :: (Monad m, Nvim m, Rpc c ()) => c -> m () Source #

runRibo :: Ribo s e a -> RNeovim s (Either e a) Source #

runRiboE :: Ribo s e a -> ExceptT e (RNeovim s) a Source #

class PluginName m where Source #

Methods

pluginName1 :: m Text Source #

Instances

Instances details
PluginName IO Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

PluginName (RNeovim s) Source # 
Instance details

Defined in Ribosome.Control.Monad.Ribo

inspectErrors :: MonadRibo m => (Errors -> a) -> m a Source #

prepend :: forall s' s m a. MonadDeepState s s' m => Lens' s' [a] -> a -> m () Source #

prependUnique :: forall s' s m a. Eq a => MonadDeepState s s' m => Lens' s' [a] -> a -> m () Source #

prependUniqueBy :: forall s' s m a b. Eq b => MonadDeepState s s' m => Lens' a b -> Lens' s' [a] -> a -> m () Source #

inspectHeadE :: forall s' s e e' m a. (MonadDeepState s s' m, MonadDeepError e e' m) => e' -> Lens' s' [a] -> m a Source #

Orphan instances

MonadBase IO (Neovim e) Source # 
Instance details

Methods

liftBase :: IO α -> Neovim e α #

MonadBaseControl IO (Neovim e) Source # 
Instance details

Associated Types

type StM (Neovim e) a #

Methods

liftBaseWith :: (RunInBase (Neovim e) IO -> IO a) -> Neovim e a #

restoreM :: StM (Neovim e) a -> Neovim e a #