aboutsummaryrefslogtreecommitdiff
path: root/hypsrc-test/src
Commit message (Collapse)AuthorAgeFilesLines
* Use `.hie` files for the Hyperlinker backend (#977)Alec Theriault2019-01-313-0/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # Summary This is a large architectural change to the Hyperlinker. * extract link (and now also type) information from `.hie` instead of doing ad-hoc SYB traversals of the `RenamedSource`. Also adds a superb type-on-hover feature (#715). * re-engineer the lexer to avoid needless string conversions. By going directly through GHC's `P` monad and taking bytestring slices, we avoid a ton of allocation and have better handling of position pragmas and CPP. In terms of performance, the Haddock side of things has gotten _much_ more efficient. Unfortunately, much of this is cancelled out by the increased GHC workload for generating `.hie` files. For the full set of boot libs (including `ghc`-the-library) * the sum of total time went down by 9-10% overall * the sum of total allocations went down by 6-7% # Motivation Haddock is moving towards working entirely over `.hi` and `.hie` files. This change means we no longer need the `RenamedSource` from `TypecheckedModule` (something which is _not_ in `.hi` files). # Details Along the way a bunch of things were fixed: * Cross package (and other) links are now more reliable (#496) * The lexer tries to recover from errors on every line (instead of at CPP boundaries) * `LINE`/`COLUMN` pragmas are taken into account * filter out zero length tokens before rendering * avoid recomputing the `ModuleName`-based `SrcMap` * remove the last use of `Documentation.Haddock.Utf8` (see #998) * restructure temporary folder logic for `.hi`/`.hie` model
* Improve hyperlinker's 'spanToNewline' (#846)Alec Theriault2018-06-131-0/+26
| | | | | | | | | | | | | | | | '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.
* hypsrc-test: Accept test outputBen Gamari2016-02-081-4/+4
| | | | And fix impredicative Polymorphism testcase.
* Delete trailing whitespaceMateusz Kowalczyk2015-07-071-1/+1
|
* Create hyperlinker test case for type classes.Łukasz Hanuszczak2015-07-021-0/+38
|
* Fix issue with operators being recognized as preprocessor directives.Łukasz Hanuszczak2015-07-021-0/+4
|
* Add hyperlinker test case for checking type and type family declarations.Łukasz Hanuszczak2015-07-021-0/+42
|
* Add qualified name test for identifiers hyperlinking test case.Łukasz Hanuszczak2015-07-011-0/+1
|
* Add record wildcards test for records hyperlinking test case.Łukasz Hanuszczak2015-07-011-0/+9
|
* Add scoped type variables test for polymorphism test case.Łukasz Hanuszczak2015-07-011-0/+11
|
* Create hyperlinker test case with quantified type variables.Łukasz Hanuszczak2015-07-011-0/+55
|
* Create test case for hyperlinking @-patterns.Łukasz Hanuszczak2015-07-011-0/+8
|
* Add test case for literal syntax highlighting.Łukasz Hanuszczak2015-06-301-0/+17
|
* Add test case for record expressions and patterns hyperlinking.Łukasz Hanuszczak2015-06-301-0/+25
|
* Add test case for constructor hyperlinking.Łukasz Hanuszczak2015-06-301-0/+27
|
* Add test case for operator hyperlinking.Łukasz Hanuszczak2015-06-301-0/+18
|
* Add test case for basic identifier hyperlinking.Łukasz Hanuszczak2015-06-301-0/+27