ribosome-0.4.0.0: lib/Ribosome/Tmux/Run.hs
module Ribosome.Tmux.Run where
import Chiasma.Data.TmuxError (TmuxError)
import Chiasma.Monad.Stream (TmuxProg)
import qualified Chiasma.Monad.Stream as Chiasma (runTmux)
import Chiasma.Native.Api (TmuxNative(TmuxNative))
import Control.Monad.Catch (MonadMask)
import Data.DeepPrisms (DeepPrisms)
import Ribosome.Config.Setting (settingMaybe)
import Ribosome.Config.Settings (tmuxSocket)
import Ribosome.Control.Monad.Ribo (MonadRibo, Nvim, Ribo)
runTmux ::
MonadIO m =>
MonadRibo m =>
MonadBaseControl IO m =>
MonadDeepError e TmuxError m =>
MonadMask m =>
Nvim m =>
TmuxProg m a ->
m a
runTmux prog = do
socket <- settingMaybe tmuxSocket
Chiasma.runTmux (TmuxNative socket) prog
runTmuxE ::
MonadIO m =>
MonadRibo m =>
MonadBaseControl IO m =>
MonadMask m =>
Nvim m =>
TmuxProg (ExceptT TmuxError m) a ->
m (Either TmuxError a)
runTmuxE =
runExceptT . runTmux
class RunTmux m where
runRiboTmux :: TmuxProg m b -> m b
instance DeepPrisms e TmuxError => RunTmux (Ribo s e) where
runRiboTmux = runTmux