packages feed

ribosome-0.4.0.0: lib/Ribosome/Api/Echo.hs

module Ribosome.Api.Echo where

import Ribosome.Control.Monad.Ribo (MonadRibo, NvimE, pluginName)
import Ribosome.Data.Text (escapeQuotes)
import Ribosome.Nvim.Api.IO (vimCommand)

echoWith :: NvimE e m => Text -> Text -> m ()
echoWith cmd msg =
  vimCommand $ cmd <> " '" <> escapeQuotes msg <> "'"

echoWithName :: MonadRibo m => NvimE e m => Text -> Text -> m ()
echoWithName cmd msg = do
  name <- pluginName
  echoWith cmd $ name <> ": " <> msg

echo' :: NvimE e m => Text -> m ()
echo' =
  echoWith "echo"

echo :: MonadRibo m => NvimE e m => Text -> m ()
echo =
  echoWithName "echo"

echom' :: NvimE e m => Text -> m ()
echom' =
  echoWith "echom"

echom :: MonadRibo m => NvimE e m => Text -> m ()
echom =
  echoWithName "echom"

echomS ::
  MonadRibo m =>
  NvimE e m =>
  Show a =>
  a ->
  m ()
echomS = echom . show

echon :: MonadRibo m => NvimE e m => Text -> m ()
echon =
  echoWithName "echom"

echohl :: NvimE e m => Text -> m ()
echohl =
  vimCommand . ("echohl " <>)