Copyright | (c) Sebastian Witte |
---|---|
License | Apache-2.0 |
Maintainer | woozletoff@gmail.com |
Stability | experimental |
Portability | GHC |
Safe Haskell | None |
Language | Haskell2010 |
- data SomeMessage = Message msg => SomeMessage msg
- class Typeable message => Message message where
- data FunctionCall = FunctionCall FunctionName [Object] (TMVar (Either Object Object)) UTCTime
- data Request = Request {}
- data Notification = Notification {
- notMethod :: FunctionName
- notArgs :: [Object]
- module Data.Int
- module Data.Time
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.
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.
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.
FunctionCall FunctionName [Object] (TMVar (Either Object Object)) UTCTime | Method name, parameters, callback, timestamp |
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.
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.
Notification | |
|
module Data.Int
module Data.Time