strip-ansi-escape-0.1.0.0: src/Data/String/AnsiEscapeCodes/Strip/Text/Lazy.hs
module Data.String.AnsiEscapeCodes.Strip.Text.Lazy
( stripAnsiEscapeCodes
) where
import qualified Data.Attoparsec.Text.Lazy as AT
import qualified Data.Text.Lazy as T
import Data.String.AnsiEscapeCodes.Strip.Internal
{-# INLINE stripAnsiEscapeCodes #-}
stripAnsiEscapeCodes :: T.Text -> T.Text
stripAnsiEscapeCodes str =
case AT.parse (stripAnsiEscapeCodesP e) str of
AT.Done _ r -> T.fromStrict r
AT.Fail {} -> str
where
e = Env AT.skipWhile AT.takeWhile1