ribosome-0.4.0.0: lib/Ribosome/Plugin/Builtin.hs
module Ribosome.Plugin.Builtin where
import Data.MessagePack (Object(ObjectString, ObjectNil))
import Neovim.Plugin.Classes (Synchronous(Async))
import Ribosome.Control.Monad.Ribo (MonadRibo, NvimE)
import Ribosome.Data.Text (capitalize)
import Ribosome.Plugin.TH.Handler (RpcDef(RpcDef), RpcDefDetail(RpcFunction))
import Ribosome.Scratch (killScratchByName)
deleteScratch ::
MonadRibo m =>
NvimE e m =>
[Object] ->
m Object
deleteScratch [ObjectString name] = do
ObjectNil <$ killScratchByName (decodeUtf8 name)
deleteScratch _ =
return ObjectNil
deleteScratchRpc ::
MonadRibo m =>
NvimE e m =>
Text ->
RpcDef m
deleteScratchRpc pluginName =
RpcDef (RpcFunction Async) (capitalize pluginName <> "DeleteScratch") deleteScratch