diff options
-rw-r--r-- | Trammel.hs | 8 | ||||
-rw-r--r-- | test4.hs | 3 |
2 files changed, 11 insertions, 0 deletions
@@ -24,6 +24,14 @@ data Trammel a deriving (Eq, Show) +instance Functor Trammel where + fmap f = \case + Append t1 t2 -> Append (fmap f t1) (fmap f t2) + Plain s -> Plain (f s) + SGR pm t -> SGR pm (fmap f t) + Empty -> Empty + + instance Monoid (Trammel a) where mappend = Append mempty = Empty @@ -124,6 +124,7 @@ redraw :: State -> IO () redraw _q@State{..} = do let image = + map (fmap $ fmap $ sub '\t' ' ') $ map (trammelTake screenWidth . trammelDrop xoffset) $ take screenHeight $ headBuffer ++ drop yoffset treeBuffer @@ -135,6 +136,8 @@ redraw _q@State{..} = do putStr $ pp $ "\ESC[H" <> first <> mconcat (map ("\n"<>) rest) _ -> return () + where + sub x x' c = if c == x then x' else c |