module Ribosome.Api.Normal where

import Ribosome.Control.Monad.Ribo (NvimE)
import Ribosome.Nvim.Api.IO (vimCommand)

normalm ::
  NvimE e m =>
  Text ->
  m ()
normalm :: Text -> m ()
normalm Text
cmd =
  Text -> m ()
forall (m :: * -> *) e.
(Nvim m, MonadDeepError e RpcError m) =>
Text -> m ()
vimCommand (Text -> m ()) -> Text -> m ()
forall a b. (a -> b) -> a -> b
$ Text
"normal " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
cmd

normal ::
  NvimE e m =>
  Text ->
  m ()
normal :: Text -> m ()
normal Text
cmd =
  Text -> m ()
forall (m :: * -> *) e.
(Nvim m, MonadDeepError e RpcError m) =>
Text -> m ()
vimCommand (Text -> m ()) -> Text -> m ()
forall a b. (a -> b) -> a -> b
$ Text
"normal! " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
cmd

noautocmdNormal ::
  NvimE e m =>
  Text ->
  m ()
noautocmdNormal :: Text -> m ()
noautocmdNormal Text
cmd =
  Text -> m ()
forall (m :: * -> *) e.
(Nvim m, MonadDeepError e RpcError m) =>
Text -> m ()
vimCommand (Text -> m ()) -> Text -> m ()
forall a b. (a -> b) -> a -> b
$ Text
"noautocmd normal! " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
cmd