-- |API functions for process IDs.
module Ribosome.Api.Process where

import Ribosome.Host.Api.Effect (vimCallFunction)
import Ribosome.Host.Effect.Rpc (Rpc)

-- |Return Neovim's process ID.
vimPid ::
  Member Rpc r =>
  Sem r Int
vimPid :: forall (r :: EffectRow). Member Rpc r => Sem r Int
vimPid =
  Text -> [Object] -> Sem r Int
forall a (r :: EffectRow).
(Member Rpc r, MsgpackDecode a) =>
Text -> [Object] -> Sem r a
vimCallFunction Text
"getpid" []