Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use `.hie` files for the Hyperlinker backend (#977) | Alec Theriault | 2019-01-31 | 1 | -11/+44 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # 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 | ||||
* | Set UTF-8 encoding before writing files (#934) | Alec Theriault | 2018-10-16 | 1 | -1/+2 |
| | | | | | This should fix #929, as well as guard against future problems of this sort in other places. Basically replaces 'writeFile' (which selects the users default locale) with 'writeUtf8File' (which always uses utf8). | ||||
* | Move source paths types to hyperlinker types module. | Łukasz Hanuszczak | 2015-07-06 | 1 | -0/+2 |
| | |||||
* | Extract main hyperlinker types to separate module. | Łukasz Hanuszczak | 2015-07-06 | 1 | -0/+1 |
| | |||||
* | Refactor source path mapping to use modules as indices. | Łukasz Hanuszczak | 2015-07-05 | 1 | -9/+6 |
| | |||||
* | Make hyperlinker respect pretty-printer flag and add documentation. | Łukasz Hanuszczak | 2015-06-30 | 1 | -7/+23 |
| | |||||
* | Add basic support for cross-package hyperlink generation. | Łukasz Hanuszczak | 2015-06-30 | 1 | -12/+13 |
| | |||||
* | Rewrite source generation to fixed links and directory structure. | Łukasz Hanuszczak | 2015-06-30 | 1 | -17/+12 |
| | |||||
* | Make external hyperlinks point to locations specified by source URLs. | Łukasz Hanuszczak | 2015-06-30 | 1 | -5/+3 |
| | |||||
* | Make source hyperlinker generate output in apropriate directory. | Łukasz Hanuszczak | 2015-06-30 | 1 | -16/+25 |
| | |||||
* | Add support for fancy highlighting upon hovering over identifier. | Łukasz Hanuszczak | 2015-06-30 | 1 | -2/+8 |
| | |||||
* | Add support for providing custom CSS files for hyperlinked source. | Łukasz Hanuszczak | 2015-06-30 | 1 | -6/+20 |
| | |||||
* | Create hyperlinker module and plug it into the Haddock pipeline. | Łukasz Hanuszczak | 2015-06-30 | 1 | -0/+25 |