rasa-ext-slate-0.1.0.0: src/Rasa/Renderer/Slate.hs
module Rasa.Renderer.Slate (slate, terminalEvents) where
import Rasa.Ext
import Rasa.Renderer.Slate.Render (render)
import Rasa.Renderer.Slate.Event (terminalEvents)
import Rasa.Renderer.Slate.State (getVty)
import qualified Graphics.Vty as V
import Control.Monad.IO.Class
-- | The main export for this extension. Add this to your user config.
--
-- e.g.
--
-- > rasa [...] $ do
-- > slate
-- > ...
slate :: Scheduler ()
slate = do
onRender render
onExit shutdown
-- | Call vty shutdown procedure (if this doesn't happen the terminal ends up in strange states)
shutdown :: Action ()
shutdown = do
v <- getVty
liftIO $ V.shutdown v