|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | * default methods now get rendered differently
  * default associated types get rendered
  * fix a forgotten `s/TypeSig/ClassOpSig/` refactor in LaTeX backend
  * LaTeX backend now renders default method signatures
NB: there is still no way to document default class members and the
NB: LaTeX backend still crashes on associated types | 
| | 
| 
| 
| | Fixes #1030. | 
| |\ |  | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | This is to address the concern that, on less nice and older screens,
some of the shades of grey blend in too easily with the white
background.
 * darken the font slightly
 * darken slightly the grey behind type signatures and such
 * add a border and round the corners on code blocks
 * knock the font down by one point | 
| | | 
| | 
| | | Fixes #864. | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | Adds a menu item (like "Quick Jump") for options related to displaying
instances. This provides functionality for:
  * expanding/collapsing all instances on the currently opened page
  * controlling whether instances are expanded/collapsed by default
  * controlling whether the state of instances should be "remembered"
This new functionality is implemented in Typescript in `details-helper`.
The built-in-themes style switcher also got a revamp so that all three
of QuickJump, the style switcher, and instance preferences now have
the same style and implementation structure.
See also: https://mail.haskell.org/pipermail/haskell-cafe/2019-January/130495.html
Fixes #698.
Co-authored-by: Lysxia <lysxia@gmail.com>
Co-authored-by: Nathan Collins <conathan@galois.com> | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | Docs on standalone deriving decls for classes with associated types
should be associated with the class instance, not the associated type
instance.
Fixes #1033 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | The second example is interesting.
If there's a list directly after the header, and that list has
deeper structure, the parser is confused: It finds two lists:
 - One with the first nested element,
 - everything after it
I'm not trying to fix this, as I'm not even sure this is a bug,
and not a feature. | 
| | | 
| | 
| | | No need to `stack install` Haddock to test it. Indeed, `stack install` changes the `haddock` on user's `PATH` if `~/.local/bin` is on user's `PATH` which may not be desirable when hacking on Haddock. | 
| | | 
| | 
| | 
| | 
| | | It looks like the new versions don't cause any breakage
and loosening the bounds helps deps fit in one stack resolver. | 
| | | |  | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | | The information about whether or not there is a source-level `forall`
is already available on a `ConDecl` (as `con_forall`), so we should use
it instead of always assuming `False`!
Fixes #1002. | 
| | | 
| | 
| | | Fixes #992 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | * WIP: Load (typechecker) plugins from language pragmas
* Revert "Load plugins when starting a GHC session (#905)"
This reverts commit 72d82e52f2a6225686d9668790ac33c1d1743193.
* Simplify plugin initialization code | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | | * don't forget to print explicit `forall`'s when there are arg docs
 * when printing an explicit `forall`, print all tyvars
Fixes #973 | 
| | | 
| | 
| | 
| | 
| | 
| | | Matches b71da1feabf33efbbc517ac376bb690b5a604c2f from hackage-server.
Fixes #967. | 
| | | |  | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | This avoids a situation in which an identifier would get defaulted to
a completely different identifier. Prior to this commit, the 'Bug1035'
test case would hyperlink 'Foo' into 'Bar'!
Fixes #1035. | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | * '(<|>)' and '`elem`' now get parsed and rendered properly as links
  * 'DbModule'/'DbUnitId' now properly get split apart into two links
  * tuple names now get parsed properly
  * some more small niceties...
The identifier parsing code is more precise and more efficient (although to be
fair: it is also longer and in its own module). On the rendering side, we need
to pipe through information about backticks/parens/neither all the way through
from renaming to the backends.
In terms of impact: a total of 35 modules in the entirety of the bootlib + ghc
lib docs change. The only "regression" is things like '\0'. These should be
changed to @\\0@ (the path by which this previously worked seems accidental). | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | Identifier links can be prefixed with a 'v' or 't' to indicate the value or
type namespace of the desired identifier. For example:
-- | Some link to a value: v'Data.Functor.Identity'
--
-- Some link to a type: t'Data.Functor.Identity'
The default is still the type (with a warning about the ambiguity) | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | | The central trick in this patch is to use `dataConUserTyVars` instead of
`univ_tvs ++ ex_tvs`, which displays the foralls in a GADT constructor in
a way that's more faithful to how the user originally wrote it.
Fixes #1015. | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | Now that Haddock is moving towards working entirely over `.hi` and `.hie` files,
all declarations and types are going to be synthesized via the `Convert` module.
In preparation for this change, here are a bunch of fixes to this module:
  * Add kind annotations to type variables in `forall`'s whose kind is not `Type`,
    unless the kind can be inferred from some later use of the variable. See
    `implicitForAll` and `noKindTyVars` in particular if you wish to dive into this.
  * Properly detect `HsQualTy` in `synifyType`. This is done by following suit with
    what GHC's `toIfaceTypeX` does and checking the first argument of
    `FunTy{} :: Type` to see if it classified as a given/wanted in the typechecker
    (see `isPredTy`). 
  * Beef up the logic around figuring out when an explicit `forall` is needed. This
    includes: observing if any of the type variables will need kind signatures, if the
    inferred type variable order _without_ a forall will still match the one GHC
    claims, and some other small things.
  * Add some (not yet used) functionality for default levity polymorphic type
    signatures. This functionality similar to `fprint-explicit-runtime-reps`.
Couple other smaller fixes only worth mentioning:
  * Show the family result signature only when it isn't `Type`
  * Fix rendering of implicit parameters in the LaTeX and Hoogle backends
  * Better handling of the return kind of polykinded H98 data declarations
  * Class decls produced by `tyThingToLHsDecl` now contain associated type
    defaults and default method signatures when appropriate
  * Filter out more `forall`'s in pattern synonyms | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | The circumstances under which this module appeared are completely gone.
The Hyperlinker backend no longer needs this module (it uses the more
efficient `Encoding` module from `ghc`).
Why no deprecation? Because this module really shouldn't exist!
  - It isn't used in `haddock-library`/`haddock-api` anymore
  - It was copy pasted directly from `utf8-string`
  - Folks seeking a boot-lib only solution can use `ghc`'s `Encoding` | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | * Amend `ParserSpec` to match new Hyperlinker API
    - pass in compiler info
    - strip out null tokens
* Make `hypsrc-test` pass reliably
    - strip out `local-*` ids
    - strip out `line-*` ids from the `ClangCppBug` test
    - re-accept output | 
| | | 
| | 
| | 
| | | Should help make CI be less broken | 
| | | |  | 
| | | |  | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | # 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 | 
| | | |  | 
| | | 
| | 
| | 
| | | Since 53874834b779ad0dfbcde6650069c37926da1b79 in GHC, "GHC.Maybe"
is marked as `not-home`. That changes around some test output. | 
| | | |  | 
| | | 
| | 
| | | Fixes #885. | 
| | | 
| | 
| | 
| | | The functionality is easily inlined into one short function: `gmapEverywhere`.
This doesn't warrant pulling in another package. | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | * Synify and render properly promoted type variables
Fixes #923.
* Accept output | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | | This commit should not introduce any change in functionality!
  * consistently use `getOccString` to convert `Name`s to strings
  * compare names directly when possible (instead of comparing strings)
  * get rid of unused utility functions | 
| | | 
| | 
| | 
| | | This will make investigation of #979 easier | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | | * remove redundant imports (only brought to light due to recent work for
  improving redundant import detection)
* fix a bug that was casuing exports to appear in reverse order
* fix something in haddock-library that prevented compilation on old GHC's | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | Trac Issues #15495
This patch removes the ping-pong style from HsPat (only, for now), using the plan laid out at https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow/HandlingSourceLocations (solution A).
- the class `HasSrcSpan`, and its functions (e.g., `cL` and `dL`), are introduced
- some instances of `HasSrcSpan` are introduced
- some constructors `L` are replaced with `cL`
- some patterns `L` are replaced with `dL->L` view pattern
- some type annotation are necessarily updated (e.g., `Pat p` --> `Pat (GhcPass p)`) | 
| |\ \  
| | | 
| | | | Follow GHC HEAD's HsTypes.Promoted -> BasicTypes.PromotionFlag change | 
| |/ /  
| |   
| |   
| | | It got introduced in ghc/ghc@ae2c9b40f5b6bf272251d1f4107c60003f541b62. | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | Summary:
For links in subpackages as well.
https://phabricator.haskell.org/D5257
Test Plan: Manually verify links
Reviewers: mpickering, bgamari, osa1
Reviewed By: osa1
GHC Trac Issues: #15733
Differential Revision: https://phabricator.haskell.org/D5262 | 
| |\| |  | 
| | |\  
| | | 
| | | | Introduce NewOcean theme. | 
| | | | |  | 
| | | | |  | 
| | | |\  
| | |/  
| |/| |  | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | | Correspondingly, we wrap all inline/diplay math in
    <span class="mathjax"> ... the math .... </span>
This fixes #959. | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | | * Fix misplaced Haddocks in Haddock itself
Haddock should be able to generate documentation for 'haddock-api'
again.
* Make CI check that documentation can be built.
* Add back a doc that is OK | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | | AFAICT this wasn't causing any crashes, but that's mostly because
we happen not to be forcing `pkgStr` when it would diverge. We come
dangerously close to doing that in `ppHtmlIndex`.
Fixes #569. | 
| | | | 
| | | 
| | | 
| | | 
| | | | Also, functions and data decls now have the same space before and after
them. |