hw-xml 0.5.1.1 → 0.5.1.2
raw patch · 2 files changed
+47/−32 lines, 2 filesdep +prettyprinterdep −ansi-wl-pprintdep ~bytestringdep ~containersdep ~deepseqPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: prettyprinter
Dependencies removed: ansi-wl-pprint
Dependency ranges changed: bytestring, containers, deepseq, doctest, ghc-prim, hedgehog, optparse-applicative, resourcet, text
API changes (from Hackage documentation)
- HaskellWorks.Data.Xml.RawValue: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty HaskellWorks.Data.Xml.RawValue.RawValue
- HaskellWorks.Data.Xml.Succinct.Cursor.InterestBits: instance HaskellWorks.Data.Xml.Succinct.Cursor.BlankedXml.FromBlankedXml (HaskellWorks.Data.Xml.Succinct.Cursor.InterestBits.XmlInterestBits (HaskellWorks.Data.Bits.BitShown.BitShown Data.ByteString.Internal.ByteString))
- HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance (HaskellWorks.Data.Xml.Succinct.Cursor.BlankedXml.FromBlankedXml (HaskellWorks.Data.Xml.Succinct.Cursor.InterestBits.XmlInterestBits a), HaskellWorks.Data.Xml.Succinct.Cursor.BlankedXml.FromBlankedXml (HaskellWorks.Data.Xml.Succinct.Cursor.BalancedParens.XmlBalancedParens b)) => HaskellWorks.Data.FromByteString.FromByteString (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.ByteString a b)
- HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance Data.String.IsString (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word16)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word16)))
- HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance Data.String.IsString (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word32)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word32)))
- HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance Data.String.IsString (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word64)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word64)))
- HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance Data.String.IsString (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word8)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word8)))
- HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance Data.String.IsString (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.ByteString HaskellWorks.Data.RankSelect.Poppy512.Poppy512 (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word64)))
- HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance HaskellWorks.Data.FromForeignRegion.FromForeignRegion (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word16)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word16)))
- HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance HaskellWorks.Data.FromForeignRegion.FromForeignRegion (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word32)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word32)))
- HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance HaskellWorks.Data.FromForeignRegion.FromForeignRegion (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word64)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word64)))
- HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance HaskellWorks.Data.FromForeignRegion.FromForeignRegion (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word8)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word8)))
- HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance HaskellWorks.Data.FromForeignRegion.FromForeignRegion (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.ByteString HaskellWorks.Data.RankSelect.Poppy512.Poppy512 (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word64)))
- HaskellWorks.Data.Xml.Succinct.Index: instance (HaskellWorks.Data.BalancedParens.BalancedParens.BalancedParens w, HaskellWorks.Data.RankSelect.Base.Rank0.Rank0 w, HaskellWorks.Data.RankSelect.Base.Rank1.Rank1 w, HaskellWorks.Data.RankSelect.Base.Select1.Select1 v, HaskellWorks.Data.Bits.BitWise.TestBit w) => HaskellWorks.Data.Xml.Succinct.Index.XmlIndexAt (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.ByteString v w)
- HaskellWorks.Data.Xml.Token.Tokenize: instance HaskellWorks.Data.Xml.Token.Tokenize.ParseXml Data.ByteString.Internal.ByteString Data.ByteString.Internal.ByteString GHC.Types.Double
- HaskellWorks.Data.Xml.Token.Tokenize: instance HaskellWorks.Data.Xml.Token.Tokenize.ParseXml Data.ByteString.Internal.ByteString GHC.Base.String GHC.Types.Double
- HaskellWorks.Data.Xml.Type: instance (HaskellWorks.Data.BalancedParens.BalancedParens.BalancedParens w, HaskellWorks.Data.RankSelect.Base.Rank0.Rank0 w, HaskellWorks.Data.RankSelect.Base.Rank1.Rank1 w, HaskellWorks.Data.RankSelect.Base.Select1.Select1 v, HaskellWorks.Data.Bits.BitWise.TestBit w) => HaskellWorks.Data.Xml.Type.XmlTypeAt (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.ByteString v w)
+ HaskellWorks.Data.Xml.RawValue: instance Prettyprinter.Internal.Pretty HaskellWorks.Data.Xml.RawValue.RawValue
+ HaskellWorks.Data.Xml.Succinct.Cursor.InterestBits: instance HaskellWorks.Data.Xml.Succinct.Cursor.BlankedXml.FromBlankedXml (HaskellWorks.Data.Xml.Succinct.Cursor.InterestBits.XmlInterestBits (HaskellWorks.Data.Bits.BitShown.BitShown Data.ByteString.Internal.Type.ByteString))
+ HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance (HaskellWorks.Data.Xml.Succinct.Cursor.BlankedXml.FromBlankedXml (HaskellWorks.Data.Xml.Succinct.Cursor.InterestBits.XmlInterestBits a), HaskellWorks.Data.Xml.Succinct.Cursor.BlankedXml.FromBlankedXml (HaskellWorks.Data.Xml.Succinct.Cursor.BalancedParens.XmlBalancedParens b)) => HaskellWorks.Data.FromByteString.FromByteString (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.Type.ByteString a b)
+ HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance Data.String.IsString (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.Type.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word16)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word16)))
+ HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance Data.String.IsString (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.Type.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word32)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word32)))
+ HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance Data.String.IsString (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.Type.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word64)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word64)))
+ HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance Data.String.IsString (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.Type.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word8)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word8)))
+ HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance Data.String.IsString (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.Type.ByteString HaskellWorks.Data.RankSelect.Poppy512.Poppy512 (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word64)))
+ HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance HaskellWorks.Data.FromForeignRegion.FromForeignRegion (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.Type.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word16)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word16)))
+ HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance HaskellWorks.Data.FromForeignRegion.FromForeignRegion (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.Type.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word32)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word32)))
+ HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance HaskellWorks.Data.FromForeignRegion.FromForeignRegion (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.Type.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word64)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word64)))
+ HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance HaskellWorks.Data.FromForeignRegion.FromForeignRegion (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.Type.ByteString (HaskellWorks.Data.Bits.BitShown.BitShown (Data.Vector.Storable.Vector GHC.Word.Word8)) (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word8)))
+ HaskellWorks.Data.Xml.Succinct.Cursor.Internal: instance HaskellWorks.Data.FromForeignRegion.FromForeignRegion (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.Type.ByteString HaskellWorks.Data.RankSelect.Poppy512.Poppy512 (HaskellWorks.Data.BalancedParens.Simple.SimpleBalancedParens (Data.Vector.Storable.Vector GHC.Word.Word64)))
+ HaskellWorks.Data.Xml.Succinct.Index: instance (HaskellWorks.Data.BalancedParens.BalancedParens.BalancedParens w, HaskellWorks.Data.RankSelect.Base.Rank0.Rank0 w, HaskellWorks.Data.RankSelect.Base.Rank1.Rank1 w, HaskellWorks.Data.RankSelect.Base.Select1.Select1 v, HaskellWorks.Data.Bits.BitWise.TestBit w) => HaskellWorks.Data.Xml.Succinct.Index.XmlIndexAt (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.Type.ByteString v w)
+ HaskellWorks.Data.Xml.Token.Tokenize: instance HaskellWorks.Data.Xml.Token.Tokenize.ParseXml Data.ByteString.Internal.Type.ByteString Data.ByteString.Internal.Type.ByteString GHC.Types.Double
+ HaskellWorks.Data.Xml.Token.Tokenize: instance HaskellWorks.Data.Xml.Token.Tokenize.ParseXml Data.ByteString.Internal.Type.ByteString GHC.Base.String GHC.Types.Double
+ HaskellWorks.Data.Xml.Type: instance (HaskellWorks.Data.BalancedParens.BalancedParens.BalancedParens w, HaskellWorks.Data.RankSelect.Base.Rank0.Rank0 w, HaskellWorks.Data.RankSelect.Base.Rank1.Rank1 w, HaskellWorks.Data.RankSelect.Base.Select1.Select1 v, HaskellWorks.Data.Bits.BitWise.TestBit w) => HaskellWorks.Data.Xml.Type.XmlTypeAt (HaskellWorks.Data.Xml.Succinct.Cursor.Internal.XmlCursor Data.ByteString.Internal.Type.ByteString v w)
- HaskellWorks.Data.Xml.Token.Tokenize: class IsChar c
+ HaskellWorks.Data.Xml.Token.Tokenize: class () => IsChar c
- HaskellWorks.Data.Xml.Value: attributes :: HasValue c_ayjY => Traversal' c_ayjY [(Text, Text)]
+ HaskellWorks.Data.Xml.Value: attributes :: HasValue c_ayAC => Traversal' c_ayAC [(Text, Text)]
- HaskellWorks.Data.Xml.Value: cdata :: HasValue c_ayjY => Traversal' c_ayjY Text
+ HaskellWorks.Data.Xml.Value: cdata :: HasValue c_ayAC => Traversal' c_ayAC Text
- HaskellWorks.Data.Xml.Value: childNodes :: HasValue c_ayjY => Traversal' c_ayjY [Value]
+ HaskellWorks.Data.Xml.Value: childNodes :: HasValue c_ayAC => Traversal' c_ayAC [Value]
- HaskellWorks.Data.Xml.Value: class HasValue c_ayjY
+ HaskellWorks.Data.Xml.Value: class HasValue c_ayAC
- HaskellWorks.Data.Xml.Value: comment :: HasValue c_ayjY => Traversal' c_ayjY Text
+ HaskellWorks.Data.Xml.Value: comment :: HasValue c_ayAC => Traversal' c_ayAC Text
- HaskellWorks.Data.Xml.Value: errorMessage :: HasValue c_ayjY => Traversal' c_ayjY Text
+ HaskellWorks.Data.Xml.Value: errorMessage :: HasValue c_ayAC => Traversal' c_ayAC Text
- HaskellWorks.Data.Xml.Value: name :: HasValue c_ayjY => Traversal' c_ayjY Text
+ HaskellWorks.Data.Xml.Value: name :: HasValue c_ayAC => Traversal' c_ayAC Text
- HaskellWorks.Data.Xml.Value: textValue :: HasValue c_ayjY => Traversal' c_ayjY Text
+ HaskellWorks.Data.Xml.Value: textValue :: HasValue c_ayAC => Traversal' c_ayAC Text
- HaskellWorks.Data.Xml.Value: value :: HasValue c_ayjY => Lens' c_ayjY Value
+ HaskellWorks.Data.Xml.Value: value :: HasValue c_ayAC => Lens' c_ayAC Value
Files
- hw-xml.cabal +15/−15
- src/HaskellWorks/Data/Xml/RawValue.hs +32/−17
hw-xml.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.2 name: hw-xml-version: 0.5.1.1+version: 0.5.1.2 synopsis: XML parser based on succinct data structures. description: XML parser based on succinct data structures. Please see README.md category: Data, XML, Succinct Data Structures, Data Structures@@ -25,20 +25,20 @@ common base { build-depends: base >= 4.11 && < 5 } -common ansi-wl-pprint { build-depends: ansi-wl-pprint >= 0.6.9 && < 0.7 }+common prettyprinter { build-depends: prettyprinter >= 0.6.9 && < 2 } common array { build-depends: array >= 0.5.2.0 && < 0.6 } common attoparsec { build-depends: attoparsec >= 0.13.2.2 && < 0.15 }-common bytestring { build-depends: bytestring >= 0.10.8.2 && < 0.12 }+common bytestring { build-depends: bytestring >= 0.10.8.2 && < 0.13 } common cereal { build-depends: cereal >= 0.5.8.1 && < 0.6 }-common containers { build-depends: containers >= 0.5.10.2 && < 0.7 }-common criterion { build-depends: criterion >= 1.5.5.0 && < 1.6 }-common deepseq { build-depends: deepseq >= 1.4.3.0 && < 1.5 }-common doctest { build-depends: doctest >= 0.16.2 && < 0.21 }+common containers { build-depends: containers >= 0.5.10.2 && < 0.8 }+common criterion { build-depends: criterion >= 1.5.5.0 && < 1.7 }+common deepseq { build-depends: deepseq >= 1.4.3.0 && < 1.6 }+common doctest { build-depends: doctest >= 0.16.2 && < 0.23 } common doctest-discover { build-depends: doctest-discover >= 0.2 && < 0.3 } common generic-lens { build-depends: generic-lens >= 2.2 && < 2.3 }-common ghc-prim { build-depends: ghc-prim >= 0.5 && < 0.9 }-common hedgehog { build-depends: hedgehog >= 1.0 && < 1.2 }-common hspec { build-depends: hspec >= 2.5 && < 3.0 }+common ghc-prim { build-depends: ghc-prim >= 0.5 && < 0.12 }+common hedgehog { build-depends: hedgehog >= 1.0 && < 1.5 }+common hspec { build-depends: hspec >= 2.5 && < 3 } common hw-balancedparens { build-depends: hw-balancedparens >= 0.3.0.1 && < 0.5 } common hw-bits { build-depends: hw-bits >= 0.7.0.9 && < 0.8 } common hw-hspec-hedgehog { build-depends: hw-hspec-hedgehog >= 0.1 && < 0.2 }@@ -49,11 +49,11 @@ common lens { build-depends: lens >= 4.17.1 && < 6 } common mmap { build-depends: mmap >= 0.5.9 && < 0.6 } common mtl { build-depends: mtl >= 2.2.2 && < 3 }-common optparse-applicative { build-depends: optparse-applicative >= 0.15.1.0 && < 0.18 }-common resourcet { build-depends: resourcet >= 1.2.2 && < 1.3 }-common text { build-depends: text >= 1.2.3.2 && < 1.3 }+common optparse-applicative { build-depends: optparse-applicative >= 0.15.1.0 && < 0.19 }+common resourcet { build-depends: resourcet >= 1.2.2 && < 2 }+common text { build-depends: text >= 1.2.3.2 && < 3 } common transformers { build-depends: transformers >= 0.5 && < 0.7 }-common vector { build-depends: vector >= 0.12.0.3 && < 0.13 }+common vector { build-depends: vector >= 0.12.0.3 && < 0.14 } common word8 { build-depends: word8 >= 0.1.3 && < 0.2 } common config@@ -64,7 +64,6 @@ library import: base, config- , ansi-wl-pprint , array , attoparsec , base@@ -82,6 +81,7 @@ , lens , mmap , mtl+ , prettyprinter , resourcet , text , transformers
src/HaskellWorks/Data/Xml/RawValue.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeApplications #-} module HaskellWorks.Data.Xml.RawValue ( RawValue(..)@@ -15,7 +16,7 @@ import HaskellWorks.Data.Xml.Grammar import HaskellWorks.Data.Xml.Internal.Show import HaskellWorks.Data.Xml.Succinct.Index-import Text.PrettyPrint.ANSI.Leijen hiding ((<$>), (<>))+import Prettyprinter import qualified Data.Attoparsec.ByteString.Char8 as ABC import qualified Data.ByteString as BS@@ -34,35 +35,49 @@ | RawError Text deriving (Eq, Show) +-- TODO use colors and styles++red :: Doc ann -> Doc ann+red = id++dullwhite :: Doc ann -> Doc ann+dullwhite = id++bold :: Doc ann -> Doc ann+bold = id++dullgreen :: Doc ann -> Doc ann+dullgreen = id+ instance Pretty RawValue where pretty mjpv = case mjpv of- RawText s -> ctext $ text (T.unpack s)- RawAttrName s -> text (T.unpack s)- RawAttrValue s -> (ctext . dquotes . text) (T.unpack s)+ RawText s -> ctext $ pretty (T.unpack s)+ RawAttrName s -> pretty (T.unpack s)+ RawAttrValue s -> (ctext . dquotes . pretty) (T.unpack s) RawAttrList ats -> formatAttrs ats- RawComment s -> text $ "<!-- " <> show s <> "-->"+ RawComment s -> pretty $ "<!-- " <> show s <> "-->" RawElement s xs -> formatElem (T.unpack s) xs RawDocument xs -> formatMeta "?" "xml" xs- RawError s -> red $ text "[error " <> text (T.unpack s) <> text "]"- RawCData s -> cangle "<!" <> ctag (text "[CDATA[") <> text (T.unpack s) <> cangle (text "]]>")+ RawError s -> red $ "[error " <> pretty (T.unpack s) <> "]"+ RawCData s -> cangle "<!" <> ctag "[CDATA[" <> pretty (T.unpack s) <> cangle "]]>" RawMeta s xs -> formatMeta "!" (T.unpack s) xs where formatAttr at = case at of- RawAttrName a -> text " " <> pretty (RawAttrName a)- RawAttrValue a -> text "=" <> pretty (RawAttrValue a)- RawAttrList _ -> red $ text "ATTRS"- _ -> red $ text "booo"+ RawAttrName a -> " " <> pretty (RawAttrName a)+ RawAttrValue a -> "=" <> pretty (RawAttrValue a)+ RawAttrList _ -> red "ATTRS"+ _ -> red "booo" formatAttrs ats = hcat (formatAttr <$> ats) formatElem s xs = let (ats, es) = partition isAttrL xs- in cangle langle <> ctag (text s)+ in cangle langle <> ctag (pretty s) <> hcat (pretty <$> ats) <> cangle rangle <> hcat (pretty <$> es)- <> cangle (text "</") <> ctag (text s) <> cangle rangle+ <> cangle "</" <> ctag (pretty s) <> cangle rangle formatMeta b s xs = let (ats, es) = partition isAttr xs- in cangle (langle <> text b) <> ctag (text s)+ in cangle (langle <> pretty @String b) <> ctag (pretty @String s) <> hcat (pretty <$> ats) <> cangle rangle <> hcat (pretty <$> es)@@ -102,13 +117,13 @@ ABC.Partial _ -> decodeErr "Unexpected end of attr name, expected" bs ABC.Done _ r -> Right r -cangle :: Doc -> Doc+cangle :: Doc ann -> Doc ann cangle = dullwhite -ctag :: Doc -> Doc+ctag :: Doc ann -> Doc ann ctag = bold -ctext :: Doc -> Doc+ctext :: Doc ann -> Doc ann ctext = dullgreen isAttrL :: RawValue -> Bool