chromatin-0.1.0.0: lib/Chromatin/Plugin.hs
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE OverloadedStrings #-}
module Chromatin.Plugin(
plugin,
)
where
import UnliftIO.STM (TVar)
import Neovim (
Plugin(..),
command',
Neovim,
StartupConfig,
NeovimConfig,
NeovimPlugin,
wrapPlugin,
)
import Ribosome.Control.Ribosome (Ribosome)
import Chromatin.Init (initialize)
import Chromatin.Data.Env (Env)
import Chromatin.Diag (crmDiag)
import Chromatin.Rebuild (crmRebuild)
plugin' :: Ribosome (TVar Env) -> Plugin (Ribosome (TVar Env))
plugin' env =
Plugin {
environment = env,
exports = [
$(command' 'crmDiag) [],
$(command' 'crmRebuild) []
]
}
plugin :: Neovim (StartupConfig NeovimConfig) NeovimPlugin
plugin = do
env <- initialize
wrapPlugin $ plugin' env