Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Hook
- type Hooks = Map TypeRep [Hook]
- afterRender :: Action () -> Action HookId
- beforeEvent :: Action () -> Action HookId
- beforeRender :: Action () -> Action HookId
- dispatchEvent :: Typeable a => a -> Action ()
- eventListener :: forall a. Typeable a => (a -> Action ()) -> Action HookId
- removeListener :: HookId -> Action ()
- matchingHooks :: forall a. Typeable a => Hooks -> [a -> Action ()]
- onInit :: Action () -> Action HookId
- onExit :: Action () -> Action HookId
- onRender :: Action () -> Action HookId
- onBufAdded :: (BufRef -> Action ()) -> Action HookId
Documentation
afterRender :: Action () -> Action HookId Source #
Registers an action to be performed AFTER each render phase.
This is useful for cleaning up extension state that was registered for the renderer, but needs to be cleared before the next iteration.
beforeEvent :: Action () -> Action HookId Source #
Registers an action to be performed BEFORE each event phase.
beforeRender :: Action () -> Action HookId Source #
Registers an action to be performed BEFORE each render phase.
This is a good spot to add information useful to the renderer since all actions have been performed. Only cosmetic changes should occur during this phase.
dispatchEvent :: Typeable a => a -> Action () Source #
Use this to dispatch an event of any type, any hooks which are listening for this event will be triggered with the provided event. Use this within an Action.
eventListener :: forall a. Typeable a => (a -> Action ()) -> Action HookId Source #
This registers an event listener hook, as long as the listener is well-typed similar to this:
MyEventType -> Action ()
then it will be registered to listen for dispatched events of that type.
Use within the Scheduler
and add have the user add it to their config.
It returns an ID which may be used with removeListener
removeListener :: HookId -> Action () Source #
This removes a listener and prevents it from responding to any more events.
matchingHooks :: forall a. Typeable a => Hooks -> [a -> Action ()] Source #
This extracts all event listener hooks from a map of hooks which match the type of the provided event.
onInit :: Action () -> Action HookId Source #
Registers an action to be performed during the Initialization phase.
This phase occurs exactly ONCE when the editor starts up. Though arbitrary actions may be performed in the configuration block; it's recommended to embed such actions in the onInit event listener so that all event listeners are registered before anything Actions occur.
onExit :: Action () -> Action HookId Source #
Registers an action to be performed during the exit phase.
This is only triggered exactly once when the editor is shutting down. It allows an opportunity to do clean-up, kill any processes you've started, or save any data before the editor terminates.