quickterm-0.2.0.0: src/lib/System/Console/Quickterm/Help.hs
module System.Console.Quickterm.Help
( Help
, indent
) where
import Data.List (intercalate)
type Help = Int -> String
-- |A simple whitespace generator.
ws :: Int -> String
ws l = replicate (l*2) ' '
-- |A whitespace manipulation function indenting the whole text block.
indent :: String -> Int -> String
indent a i = intercalate "\n" ((ws i ++) <$> splitLn a)
-- |Splits a String to a [String] based on \n.
splitLn :: String -> [String]
splitLn = f []
where
f rs [] = [reverse rs]
f rs ('\n':ss) = reverse rs : f [] ss
f rs (s:ss) = f (s:rs) ss