nvim-hs-0.2.5: Haskell plugin backend for neovim

Copyright(c) Sebastian Witte
LicenseApache-2.0
Maintainerwoozletoff@gmail.com
Stabilityexperimental
PortabilityGHC
Safe HaskellNone
LanguageHaskell2010

Neovim.Plugin.IPC.Classes

Description

 

Synopsis

Documentation

data SomeMessage Source #

Taken from xmonad and based on ideas in /An Extensible Dynamically-Typed Hierarchy of Exceptions/, Simon Marlow, 2006.

User-extensible messages must be put into a value of this type, so that it can be sent to other plugins.

Constructors

Message msg => SomeMessage msg 

class Typeable message => Message message where Source #

This class allows type safe casting of SomeMessage to an actual message. The cast is successful if the type you're expecting matches the type in the SomeMessage wrapper. This way, you can subscribe to an arbitrary message type withouth having to pattern match on the constructors. This also allows plugin authors to create their own message types without having to change the core code of nvim-hs.

Methods

fromMessage :: SomeMessage -> Maybe message Source #

Try to convert a given message to a value of the message type we are interested in. Will evaluate to Nothing for any other type.

data FunctionCall Source #

Haskell representation of supported Remote Procedure Call messages.

Constructors

FunctionCall FunctionName [Object] (TMVar (Either Object Object)) UTCTime

Method name, parameters, callback, timestamp

data Request Source #

A request is a data type containing the method to call, its arguments and an identifier used to map the result to the function that has been called.

Constructors

Request 

Fields

data Notification Source #

A notification is similar to a Request. It essentially does the same thing, but the function is only called for its side effects. This type of message is sent by neovim if the caller there does not care about the result of the computation.

Constructors

Notification 

Fields

Instances

Eq Notification Source # 
Ord Notification Source # 
Show Notification Source # 
Generic Notification Source # 

Associated Types

type Rep Notification :: * -> * #

Pretty Notification Source # 
NFData Notification Source # 

Methods

rnf :: Notification -> () #

Message Notification Source # 
type Rep Notification Source # 
type Rep Notification = D1 * (MetaData "Notification" "Neovim.Plugin.IPC.Classes" "nvim-hs-0.2.5-Jju5PaldQ6jL5dqBGEr7IX" False) (C1 * (MetaCons "Notification" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "notMethod") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * FunctionName)) (S1 * (MetaSel (Just Symbol "notArgs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Object]))))

data UTCTime :: * #

This is the simplest representation of UTC. It consists of the day number, and a time offset from midnight. Note that if a day has a leap second added to it, it will have 86401 seconds.

Instances

Eq UTCTime 

Methods

(==) :: UTCTime -> UTCTime -> Bool #

(/=) :: UTCTime -> UTCTime -> Bool #

Data UTCTime 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UTCTime -> c UTCTime #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UTCTime #

toConstr :: UTCTime -> Constr #

dataTypeOf :: UTCTime -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c UTCTime) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UTCTime) #

gmapT :: (forall b. Data b => b -> b) -> UTCTime -> UTCTime #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UTCTime -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UTCTime -> r #

gmapQ :: (forall d. Data d => d -> u) -> UTCTime -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> UTCTime -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> UTCTime -> m UTCTime #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UTCTime -> m UTCTime #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UTCTime -> m UTCTime #

Ord UTCTime 
NFData UTCTime 

Methods

rnf :: UTCTime -> () #

FormatTime UTCTime 
ParseTime UTCTime 

getCurrentTime :: IO UTCTime #

Get the current UTCTime from the system clock.

module Data.Int