packages feed

ribosome-0.2.2.0: lib/Ribosome/Log.hs

module Ribosome.Log(
  debug,
  info,
  err,
  p,
  prefixed,
  debugR,
) where

import Control.Monad.IO.Class (MonadIO, liftIO)
import Neovim (ask)
import Neovim.Log (debugM, infoM, errorM)

import Ribosome.Control.Ribo (Ribo)
import qualified Ribosome.Control.Ribosome as R (name)

debug :: (MonadIO m, Show a) => String -> a -> m ()
debug name message = liftIO $ debugM name $ show message

info :: (MonadIO m, Show a) => String -> a -> m ()
info name message = liftIO $ infoM name $ show message

err :: (MonadIO m, Show a) => String -> a -> m ()
err name message = liftIO $ errorM name $ show message

p :: (MonadIO m, Show a) => a -> m ()
p = liftIO . print

prefixed :: (MonadIO m, Show a) => String -> a -> m ()
prefixed prefix a = liftIO $ putStrLn $ prefix ++ ": " ++ show a

debugR :: String -> Ribo e ()
debugR a = do
  pluginName <- R.name <$> ask
  liftIO $ debugM pluginName a