From c266734448544a118ed80e47deaa2590131c7f84 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sun, 19 Sep 2021 12:09:51 -0700 Subject: Use pretty-simple to format native output. Previously we used our own homespun formatting. But this produces over-long lines that aren't ideal for diffs in tests. Easier to use something off-the-shelf and standard. Closes #7580. Performance is slower by about a factor of 10, but this isn't really a problem because native isn't suitable as a serialization format. (For serialization you should use json, because the reader is so much faster than native.) --- test/haddock-reader.native | 463 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 432 insertions(+), 31 deletions(-) (limited to 'test/haddock-reader.native') diff --git a/test/haddock-reader.native b/test/haddock-reader.native index 7e36b2f72..2d61cb0b8 100644 --- a/test/haddock-reader.native +++ b/test/haddock-reader.native @@ -1,31 +1,432 @@ -Pandoc (Meta {unMeta = fromList []}) -[Para [Str "This",Space,Str "file",Space,Str "tests",Space,Str "the",Space,Str "Pandoc",Space,Str "reader",Space,Str "for",Space,Str "Haddock.",SoftBreak,Str "We've",Space,Str "borrowed",Space,Str "examples",Space,Str "from",Space,Str "Haddock's",Space,Str "documentation:",Space,Link ("",[],[]) [Str "http://www.haskell.org/haddock/doc/html/ch03s08.html"] ("http://www.haskell.org/haddock/doc/html/ch03s08.html","http://www.haskell.org/haddock/doc/html/ch03s08.html"),Str "."] -,Para [Str "The",Space,Str "following",Space,Str "characters",Space,Str "have",Space,Str "special",Space,Str "meanings",Space,Str "in",Space,Str "Haddock,",Space,Str "/,",Space,Str "',",Space,Str "`,",Space,Str "\",",Space,Str "@,",Space,Str "<,",Space,Str "so",Space,Str "they",Space,Str "must",Space,Str "be",Space,Str "escaped."] -,Para [Str "*",Space,Str "This",Space,Str "is",Space,Str "a",Space,Str "paragraph,",Space,Str "not",Space,Str "a",Space,Str "list",Space,Str "item.",SoftBreak,Str ">",Space,Str "This",Space,Str "sentence",Space,Str "is",Space,Str "not",Space,Str "code.",SoftBreak,Str ">>>",Space,Str "This",Space,Str "is",Space,Str "not",Space,Str "an",Space,Str "example."] -,Para [Str "The",Space,Str "references",Space,Str "\955,",Space,Str "\955",Space,Str "and",Space,Str "\955",Space,Str "all",Space,Str "represent",Space,Str "the",Space,Str "lower-case",Space,Str "letter",Space,Str "lambda."] -,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "code",Space,Str "block:"] -,CodeBlock ("",[],[]) "map :: (a -> b) -> [a] -> [b]\nmap _ [] = []\nmap f (x:xs) = f x : map f xs" -,Para [Str "This",Space,Str "is",Space,Str "another",Space,Str "code",Space,Str "block:"] -,Para [Code ("",[],[]) "f x = x + x.",LineBreak,Code ("",[],[]) "The @...@ code block ",Emph [Code ("",[],[]) "interprets markup normally"],Code ("",[],[]) ".",Code ("",["haskell","module"],[]) "Module.Foo",Code ("",[],[]) "",LineBreak,Code ("",[],[]) "\"Hello World\""] -,Para [Str "Haddock",Space,Str "supports",Space,Str "REPL",Space,Str "examples:"] -,Para [Code ("",["prompt"],[]) ">>>",Space,Code ("",["haskell","expr"],[]) "fib 10",LineBreak,Code ("",["result"],[]) "55"] -,Para [Code ("",["prompt"],[]) ">>>",Space,Code ("",["haskell","expr"],[]) "putStrLn \"foo\\nbar\"",LineBreak,Code ("",["result"],[]) "foo",LineBreak,Code ("",["result"],[]) "bar"] -,Para [Str "That",Space,Str "was",Space,Emph [Str "really",Space,Str "cool"],Str "!",SoftBreak,Str "I",Space,Str "had",Space,Str "no",Space,Str "idea",Space,Code ("",[],[]) "fib 10 = 55",Str "."] -,Para [Str "This",Space,Str "module",Space,Str "defines",Space,Str "the",Space,Str "type",Space,Code ("",["haskell","identifier"],[]) "T",Str ".",SoftBreak,Str "The",Space,Str "identifier",Space,Code ("",["haskell","identifier"],[]) "M.T",Space,Str "is",Space,Str "not",Space,Str "in",Space,Str "scope",SoftBreak,Str "I",Space,Str "don't",Space,Str "have",Space,Str "to",Space,Str "escape",Space,Str "my",Space,Str "apostrophes;",Space,Str "great,",Space,Str "isn't",Space,Str "it?",SoftBreak,Str "This",Space,Str "is",Space,Str "a",Space,Str "reference",Space,Str "to",Space,Str "the",Space,Code ("",["haskell","module"],[]) "Foo",Space,Str "module."] -,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "bulleted",Space,Str "list:"] -,BulletList - [[Para [Str "first",Space,Str "item"]] - ,[Para [Str "second",Space,Str "item"]]] -,Para [Str "This",Space,Str "is",Space,Str "an",Space,Str "enumerated",Space,Str "list:"] -,OrderedList (1,DefaultStyle,DefaultDelim) - [[Para [Str "first",Space,Str "item"]] - ,[Para [Str "second",Space,Str "item"]]] -,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "definition",Space,Str "list:"] -,DefinitionList - [([Code ("",[],[]) "foo"], - [[Para [Str "The",Space,Str "description",Space,Str "of",Space,Code ("",[],[]) "foo",Str "."]]]) - ,([Code ("",[],[]) "bar"], - [[Para [Str "The",Space,Str "description",Space,Str "of",Space,Code ("",[],[]) "bar",Str "."]]])] -,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "link:",Space,Link ("",[],[]) [Str "http://haskell.org"] ("http://haskell.org","http://haskell.org")] -,Para [Link ("",[],[]) [Str "Haskell"] ("http://haskell.org","http://haskell.org"),Space,Str "is",Space,Str "a",Space,Str "fun",Space,Str "language!"] -,Para [Link ("",[],[]) [Str "Click",Space,Str "Here!"] ("http://example.com","http://example.com")]] +Pandoc + ( Meta { unMeta = fromList [] } ) + [ Para + [ Str "This" + , Space + , Str "file" + , Space + , Str "tests" + , Space + , Str "the" + , Space + , Str "Pandoc" + , Space + , Str "reader" + , Space + , Str "for" + , Space + , Str "Haddock." + , SoftBreak + , Str "We've" + , Space + , Str "borrowed" + , Space + , Str "examples" + , Space + , Str "from" + , Space + , Str "Haddock's" + , Space + , Str "documentation:" + , Space + , Link + ( "", [], [] ) + [ Str "http://www.haskell.org/haddock/doc/html/ch03s08.html" ] + ( "http://www.haskell.org/haddock/doc/html/ch03s08.html" + , "http://www.haskell.org/haddock/doc/html/ch03s08.html" + ) + , Str "." + ] + , Para + [ Str "The" + , Space + , Str "following" + , Space + , Str "characters" + , Space + , Str "have" + , Space + , Str "special" + , Space + , Str "meanings" + , Space + , Str "in" + , Space + , Str "Haddock," + , Space + , Str "/," + , Space + , Str "'," + , Space + , Str "`," + , Space + , Str "\"," + , Space + , Str "@," + , Space + , Str "<," + , Space + , Str "so" + , Space + , Str "they" + , Space + , Str "must" + , Space + , Str "be" + , Space + , Str "escaped." + ] + , Para + [ Str "*" + , Space + , Str "This" + , Space + , Str "is" + , Space + , Str "a" + , Space + , Str "paragraph," + , Space + , Str "not" + , Space + , Str "a" + , Space + , Str "list" + , Space + , Str "item." + , SoftBreak + , Str ">" + , Space + , Str "This" + , Space + , Str "sentence" + , Space + , Str "is" + , Space + , Str "not" + , Space + , Str "code." + , SoftBreak + , Str ">>>" + , Space + , Str "This" + , Space + , Str "is" + , Space + , Str "not" + , Space + , Str "an" + , Space + , Str "example." + ] + , Para + [ Str "The" + , Space + , Str "references" + , Space + , Str "\955," + , Space + , Str "\955" + , Space + , Str "and" + , Space + , Str "\955" + , Space + , Str "all" + , Space + , Str "represent" + , Space + , Str "the" + , Space + , Str "lower-case" + , Space + , Str "letter" + , Space + , Str "lambda." + ] + , Para + [ Str "This" + , Space + , Str "is" + , Space + , Str "a" + , Space + , Str "code" + , Space + , Str "block:" + ] + , CodeBlock + ( "" + , [] + , [] + ) "map :: (a -> b) -> [a] -> [b]\nmap _ [] = []\nmap f (x:xs) = f x : map f xs" + , Para + [ Str "This" + , Space + , Str "is" + , Space + , Str "another" + , Space + , Str "code" + , Space + , Str "block:" + ] + , Para + [ Code + ( "", [], [] ) "f x = x + x." + , LineBreak + , Code + ( "", [], [] ) "The @...@ code block " + , Emph + [ Code ( "", [], [] ) "interprets markup normally" ] + , Code + ( "", [], [] ) "." + , Code + ( "", [ "haskell", "module" ], [] ) "Module.Foo" + , Code + ( "", [], [] ) "" + , LineBreak + , Code + ( "", [], [] ) "\"Hello World\"" + ] + , Para + [ Str "Haddock" + , Space + , Str "supports" + , Space + , Str "REPL" + , Space + , Str "examples:" + ] + , Para + [ Code + ( "", [ "prompt" ], [] ) ">>>" + , Space + , Code + ( "", [ "haskell", "expr" ], [] ) "fib 10" + , LineBreak + , Code + ( "", [ "result" ], [] ) "55" + ] + , Para + [ Code + ( "", [ "prompt" ], [] ) ">>>" + , Space + , Code + ( "", [ "haskell", "expr" ], [] ) "putStrLn \"foo\\nbar\"" + , LineBreak + , Code + ( "", [ "result" ], [] ) "foo" + , LineBreak + , Code + ( "", [ "result" ], [] ) "bar" + ] + , Para + [ Str "That" + , Space + , Str "was" + , Space + , Emph + [ Str "really", Space, Str "cool" ] + , Str "!" + , SoftBreak + , Str "I" + , Space + , Str "had" + , Space + , Str "no" + , Space + , Str "idea" + , Space + , Code + ( "", [], [] ) "fib 10 = 55" + , Str "." + ] + , Para + [ Str "This" + , Space + , Str "module" + , Space + , Str "defines" + , Space + , Str "the" + , Space + , Str "type" + , Space + , Code + ( "", [ "haskell", "identifier" ], [] ) "T" + , Str "." + , SoftBreak + , Str "The" + , Space + , Str "identifier" + , Space + , Code + ( "", [ "haskell", "identifier" ], [] ) "M.T" + , Space + , Str "is" + , Space + , Str "not" + , Space + , Str "in" + , Space + , Str "scope" + , SoftBreak + , Str "I" + , Space + , Str "don't" + , Space + , Str "have" + , Space + , Str "to" + , Space + , Str "escape" + , Space + , Str "my" + , Space + , Str "apostrophes;" + , Space + , Str "great," + , Space + , Str "isn't" + , Space + , Str "it?" + , SoftBreak + , Str "This" + , Space + , Str "is" + , Space + , Str "a" + , Space + , Str "reference" + , Space + , Str "to" + , Space + , Str "the" + , Space + , Code + ( "", [ "haskell", "module" ], [] ) "Foo" + , Space + , Str "module." + ] + , Para + [ Str "This" + , Space + , Str "is" + , Space + , Str "a" + , Space + , Str "bulleted" + , Space + , Str "list:" + ] + , BulletList + [ + [ Para [ Str "first", Space, Str "item" ] ] + , + [ Para [ Str "second", Space, Str "item" ] ] + ] + , Para + [ Str "This" + , Space + , Str "is" + , Space + , Str "an" + , Space + , Str "enumerated" + , Space + , Str "list:" + ] + , OrderedList + ( 1, DefaultStyle, DefaultDelim ) + [ + [ Para [ Str "first", Space, Str "item" ] ] + , + [ Para [ Str "second", Space, Str "item" ] ] + ] + , Para + [ Str "This" + , Space + , Str "is" + , Space + , Str "a" + , Space + , Str "definition" + , Space + , Str "list:" + ] + , DefinitionList + [ + ( + [ Code ( "", [], [] ) "foo" ] + , + [ + [ Para + [ Str "The" + , Space + , Str "description" + , Space + , Str "of" + , Space + , Code + ( "", [], [] ) "foo" + , Str "." + ] + ] + ] + ) + , + ( + [ Code ( "", [], [] ) "bar" ] + , + [ + [ Para + [ Str "The" + , Space + , Str "description" + , Space + , Str "of" + , Space + , Code + ( "", [], [] ) "bar" + , Str "." + ] + ] + ] + ) + ] + , Para + [ Str "Here" + , Space + , Str "is" + , Space + , Str "a" + , Space + , Str "link:" + , Space + , Link + ( "", [], [] ) + [ Str "http://haskell.org" ] + ( "http://haskell.org", "http://haskell.org" ) + ] + , Para + [ Link + ( "", [], [] ) + [ Str "Haskell" ] + ( "http://haskell.org", "http://haskell.org" ) + , Space + , Str "is" + , Space + , Str "a" + , Space + , Str "fun" + , Space + , Str "language!" + ] + , Para + [ Link + ( "", [], [] ) + [ Str "Click", Space, Str "Here!" ] + ( "http://example.com", "http://example.com" ) + ] + ] -- cgit v1.2.3