aboutsummaryrefslogtreecommitdiff
path: root/haddock-api/src/Haddock/Backends/Hyperlinker/Parser.hs
Commit message (Collapse)AuthorAgeFilesLines
* Improve hyperlinker's 'spanToNewline' (#846)Alec Theriault2018-06-131-7/+25
| | | | | | | | | | | | | | | | 'spanToNewline' is used to help break apart the source into lines which can then be partioned into CPP and non-CPP chunks. It is important that 'spanToNewline' not break apart tokens, so it needs to properly handle things like * block comments, possibly nested * string literals, possibly multi-line * CPP macros, possibly multi-line String literals in particular were not being properly handled. The fix is to to fall back in 'Text.Read.lex' to help lex things that are not comments. Fixes #837.
* Filter out CRLFs in hyperlinker backend (#813)Alec Theriault2018-06-131-2/+7
| | | This prevents spurious lines from appearing in the final output.
* Remove `ITtildehsh` tokenSimon Jakobi2018-06-131-1/+0
|
* DerivingVia changesRyan Scott2018-06-131-6/+1
|
* Support the new 'ITcolumn_prag' tokenAlec Theriault2018-02-021-0/+2
|
* Properly color pragma contents in hyperlinkerAlec Theriault2018-02-021-13/+65
| | | | | | The hyperlinker backend now classifies the content of pragmas as 'TkPragma'. That means that in something like '{-# INLINE foo #-}', 'foo' still gets classified as a pragma token.
* Hyperlinker: Adjust parser to new PFailed constructorAlexander Biehl2018-02-011-8/+8
|
* Use the GHC lexer for the Hyperlinker backend (#714)Alec Theriault2018-02-011-190/+344
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Start changing to use GHC lexer * better cpp * Change SrcSpan to RealSrcSpan * Remove error * Try to stop too many open files * wip * wip * Revert "wip" This reverts commit b605510a195f26315e3d8ca90e6d95a6737553e1. Conflicts: haddock-api/haddock-api.cabal haddock-api/src/Haddock/Interface.hs * Remove pointless 'caching' * Use dlist rather than lists when finding vars * Use a map rather than list * Delete bogus comment * Rebase followup Things now run using the GHC lexer. There are still - stray debug statements - unnecessary changes w.r.t. master * Cleaned up differences w.r.t. current Haddock HEAD Things are looking good. quasiquotes in particular look beautiful: the TH ones (with Haskell source inside) colour/link their contents too! Haven't yet begun to check for possible performance problems. * Support CPP and top-level pragmas The support for these is hackier - but no more hacky than the existing support. * Tests pass, CPP is better recognized The tests were in some cases altered: I consider the new output to be more correct than the old one.... * Fix shrinking of source without tabs in test * Replace 'Position'/'Span' with GHC counterparts Replaces 'Position' -> 'GHC.RealSrcLoc' and 'Span' -> 'GHC.RealSrcSpan'. * Nits * Forgot entry in .cabal * Update changelog
* Change Hyperlinked lexer to know about DataKinds ticksOleg Grenrus2016-05-241-1/+11
|
* Extract main hyperlinker types to separate module.Łukasz Hanuszczak2015-07-061-36/+4
|
* Fix issue with operators being recognized as preprocessor directives.Łukasz Hanuszczak2015-07-021-3/+3
|
* Improve support for hyperlinking type families.Łukasz Hanuszczak2015-07-021-0/+1
|
* Add basic tests related to comment parsing.Łukasz Hanuszczak2015-06-301-1/+1
|
* Prevent source parser from throwing exception when lexing fails.Łukasz Hanuszczak2015-06-301-1/+3
|
* Add some documentation for parser module of source hyperlinker.Łukasz Hanuszczak2015-06-301-0/+39
|
* Add support for parsing C preprocessor macros.Łukasz Hanuszczak2015-06-301-4/+16
|
* Fix issues with escaped newlines in comments.Łukasz Hanuszczak2015-06-301-8/+5
|
* Fix bug with improper newline handling.Łukasz Hanuszczak2015-06-301-1/+1
|
* Fix parsing of single line comments with broken up newlines.Łukasz Hanuszczak2015-06-301-1/+11
|
* Fix weird hyperlinking of parenthesized operators.Łukasz Hanuszczak2015-06-301-0/+1
|
* Add support for recognizing compiler pragmas in source parser.Łukasz Hanuszczak2015-06-301-0/+2
|
* Fix comment recognition in Haskell source parser.Łukasz Hanuszczak2015-06-301-2/+3
|
* Fix identifier recognition in Haskell source parser.Łukasz Hanuszczak2015-06-301-2/+5
|
* Make parser module export all types and associated accessors.Łukasz Hanuszczak2015-06-301-3/+2
|
* Add record accessors to exports of hyperlinker parser module.Łukasz Hanuszczak2015-06-301-1/+6
|
* Adapt source span tagging to work with current whitespace handling.Łukasz Hanuszczak2015-06-301-4/+7
|
* Create basic token classification method.Łukasz Hanuszczak2015-06-301-6/+98
|
* Implement simple string chunking based on HsColour library.Łukasz Hanuszczak2015-06-301-1/+27
|
* Implement function for tagging parsed chunks with source spans.Łukasz Hanuszczak2015-06-301-1/+8
|
* Create scaffolding for Haskell source parser module.Łukasz Hanuszczak2015-06-301-0/+36