aboutsummaryrefslogtreecommitdiff
path: root/haddock-library/src/Documentation/Haddock/Parser/Util.hs
Commit message (Collapse)AuthorAgeFilesLines
* Fix crash in `haddock-library` on unicode spaceAlec Theriault2020-03-271-7/+7
| | | | | | | | | | | | | Our quickcheck tests for `haddock-library` stumbled across an edge case input that was causing Haddock to crash: it was a unicode space character. The root cause of the crash is that we were implicitly assuming that if a space character was not " \t\f\v\r", it would have to be "\n". We fix this by instead defining horizontal space as: any space character that is not '\n'. Fixes #1142
* Faster 'Text' driven parser combinatorsAlec Theriault2018-11-051-1/+1
| | | | | | | | Perf only change: * use 'getParserState'/'setParserState' to make 'Text'-optimized parser combinators * minimize uses of 'Data.Text.{pack,unpack,cons,snoc}'
* Replace 'attoparsec' with 'parsec' (#799)Alec Theriault2018-04-251-43/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Remove attoparsec with parsec and start fixing failed parses * Make tests pass * Fix encoding issues The Haddock parser no longer needs to worry about bytestrings. All the internal parsing work in haddock-library happens over 'Text'. * Remove attoparsec vendor * Fix stuff broken in 'attoparsec' -> 'parsec' * hyperlinks * codeblocks * examples Pretty much all issues are due to attoparsec's backtracking failure behaviour vs. parsec's non-backtracking failure behaviour. * Fix small TODOs * Missing quote + Haddocks * Better handle spaces before/after paragraphs * Address review comments
* Consequently use inClass and notInClass in haddock-library (#617)Alex Biehl2017-05-131-3/+6
| | | These allow attoparsec to do some clever lookup optimization
* newtype-wrap parser monadSimon Hengel2014-11-081-1/+1
|
* Add support for markdown links (closes #336)Simon Hengel2014-11-031-8/+10
|
* Compatibility with older versions of base and bytestringSimon Hengel2014-06-181-1/+18
|
* Move parser + parser tests out to own package.Mateusz Kowalczyk2014-05-051-0/+61
We move some types out that are necessary as well and then re-export and specialise them in the core Haddock. Reason for moving out spec tests is that if we're working on the parser, we can simply work on that and we can ignore the rest of Haddock. The downside is that it's a little inconvenient if at the end of the day we want to see that everything passes.