Copyright | (c) Sebastian Witte |
---|---|
License | Apache-2.0 |
Maintainer | woozletoff@gmail.com |
Stability | experimental |
Portability | GHC |
Safe Haskell | None |
Language | Haskell2010 |
- newtype ExportedFunctionality r st = EF (FunctionalityDescription, [Object] -> Neovim r st Object)
- data StatefulFunctionality r st = StatefulFunctionality {
- readOnly :: r
- writable :: st
- functionalities :: [ExportedFunctionality r st]
- getFunction :: ExportedFunctionality r st -> [Object] -> Neovim r st Object
- getDescription :: ExportedFunctionality r st -> FunctionalityDescription
- data NeovimPlugin = NeovimPlugin (Plugin r st)
- data Plugin r st = Plugin {
- exports :: [ExportedFunctionality () ()]
- statefulExports :: [StatefulFunctionality r st]
- wrapPlugin :: Applicative m => Plugin r st -> m NeovimPlugin
Documentation
newtype ExportedFunctionality r st Source #
This data type is used in the plugin registration to properly register the functions.
EF (FunctionalityDescription, [Object] -> Neovim r st Object) |
data StatefulFunctionality r st Source #
This datatype contains the initial state (mutable and immutable) for the functionalities defined here.
StatefulFunctionality | |
|
getFunction :: ExportedFunctionality r st -> [Object] -> Neovim r st Object Source #
Extract the function of an ExportedFunctionality
.
getDescription :: ExportedFunctionality r st -> FunctionalityDescription Source #
Extract the description of an ExportedFunctionality
.
data NeovimPlugin Source #
Plugin
values are wraped inside this data type via wrapPlugin
so that
we can put plugins in an ordinary list.
NeovimPlugin (Plugin r st) |
This data type contains meta information for the plugin manager.
Plugin | |
|
wrapPlugin :: Applicative m => Plugin r st -> m NeovimPlugin Source #
Wrap a Plugin
in some nice blankets, so that we can put them in a simple
list.