| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes #1481.
There were two bugs in this:
* We were assuming that we were always getting a relative path to the
module in question, while Nix gives us file:// URLs sometimes. This
change checks for those and stops prepending `..` to them.
* We were not linking to the file under the module. This seems
to have been a regression introduced by #977. That is, the URLs were
going to something like
file:///nix/store/3bwbsy0llxxn1pixx3ll02alln56ivxy-ghc-9.0.2-doc/share/doc/ghc/html/libraries/base-4.15.1.0/src
which does not have the appropriate HTML file or fragment for the item
in question at the end.
There is a remaining instance of the latter bug, but not in the
hyperlinker: the source links to items reexported from other modules are
also not including the correct file name. e.g. the reexport of Entity in
esqueleto, from persistent.
NOTE: This needs to get tested with relative-path located modules. It seems
correct for Nix based on my testing.
Testing strategy:
```
nix-shell '<nixpkgs>' --pure -A haskell.packages.ghc922.aeson
mkdir /tmp/aesonbuild && cd /tmp/aesonbuild
export out=/tmp/aesonbuild/out
genericBuild
ln -sf $HOME/co/haddock/haddock-api/resources .
./Setup haddock --with-haddock=$HOME/path/to/haddock/exec --hyperlink-source
```
(cherry picked from commit ab53ccf089ea703b767581ac14be0f6c78a7678a)
|
| |\ |
|
| | |
| | |
| | | |
See merge request ghc/ghc!7873
|
| | |
| | |
| | |
| | |
| | | |
Keeping track of promotion ticks in HsOpTy allows us to properly
pretty-print promoted constructors such as lists.
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
Add Haddock support for the OPAQUE pragma
See merge request ghc/haddock!2
|
| | | | |
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
With hi-haddock, of course there is a much large refactoring of haddock
which could be achieved but that is left for a future patch which can
implemented at any time independently of GHC.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* testsuite: strip windows line endings for haddock
* hyperlinker: Work around double escaping (#19236)
* deterministic SCC
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* FromJSON class
Aeson style FromJSON class with Parsec based json parser.
* doc-index.json file for multiple packages
When creating haddock summary page for multiple packages render
doc-index.json file using contents of all found 'doc-index.json' files.
* Render doc-index.json
When rendering html, render doc-index.json file independently of
maybe_index_url option. doc-index.json file is useful now even if
maybe_index_url is not `Nothing`.
* base url option
New `Flag_BaseURL` which configures from where static files are loaded
(--base-url). If given and not equal "." static files are not coppied,
as this indicates that they are not read from the the directory where
we'd copy them. The default value is ".".
|
| | |
| | |
| | |
| | |
| | |
| | | |
This commit renames the Lexer import in `Hyperlinker.Parser` from
`getErrorMessages` to `getPsErrorMessages` to eliminate the ambiguity
with the `getErrorMessages` function defined in `GHC.Types.Error`.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit a1337c599ef7720b0482a25c55f11794112496dc.
The GHC patch associated with this change is not yet ready to be merged.
|
| |\ \
| | | |
| | | | |
Align Haddock to use the new Parser diagnostics interface
|
| | | | |
|
| |\| | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Match changes in GHC for #19845
|
| |/ / |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
* Follow hlint suggestion: redundant $.
* Remove $ and surplus blank lines in Operators.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Render module tree per package in the content page
When rendering content page for multiple packages it is useful to split
the module tree per package. Package names in this patch are inferred
from haddock's interface file names.
* Write PackageInfo into interface file
To keep interface file format backward compatible, instead of using
`Binary` instance for `InterfaceFile` we introduce functions to
serialise and deserialise, which depends on the interface file version.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes #1481.
There were two bugs in this:
* We were assuming that we were always getting a relative path to the
module in question, while Nix gives us file:// URLs sometimes. This
change checks for those and stops prepending `..` to them.
* We were not linking to the file under the module. This seems
to have been a regression introduced by #977. That is, the URLs were
going to something like
file:///nix/store/3bwbsy0llxxn1pixx3ll02alln56ivxy-ghc-9.0.2-doc/share/doc/ghc/html/libraries/base-4.15.1.0/src
which does not have the appropriate HTML file or fragment for the item
in question at the end.
There is a remaining instance of the latter bug, but not in the
hyperlinker: the source links to items reexported from other modules are
also not including the correct file name. e.g. the reexport of Entity in
esqueleto, from persistent.
NOTE: This needs to get tested with relative-path located modules. It seems
correct for Nix based on my testing.
Testing strategy:
```
nix-shell '<nixpkgs>' --pure -A haskell.packages.ghc922.aeson
mkdir /tmp/aesonbuild && cd /tmp/aesonbuild
export out=/tmp/aesonbuild/out
genericBuild
ln -sf $HOME/co/haddock/haddock-api/resources .
./Setup haddock --with-haddock=$HOME/path/to/haddock/exec --hyperlink-source
```
|
| | |
| | |
| | |
| | |
| | | |
* Keep track of ordered list indexes and render them
* Rename some identifiers to clarify
|
| | | |
|
| | | |
|
| | | |
|
| |/
|/| |
|
| | |
|
|/ |
|
|
|
|
| |
As landed via https://gitlab.haskell.org/ghc/ghc/-/merge_requests/2418
|
| |
|
|
|
|
|
|
| |
This prevents noLoc's appearing in the ParsedSource.
Match the change in GHC.
|
| |
|
|\ |
|
| |\ |
|
| | |\ |
|
| | | | |
|
| | |/ |
|
| |\| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
With the introduction of GHC2021, the `Languages` data type in GHC will
grow. In preparation of that (and to avoid changing haddock with each
new language), this change makes the code handle extensions to that data
type gracefully.
(cherry picked from commit c341dd7c9c3fc5ebc83a2d577c5a726f3eb152a5)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
I found that when running as a plugin the lookupName function (which
runs in Ghc monad) does not work correctly from the
typeCheckResultAction hook.
Instead, we abstracted the monad used when creating interfaces, so
that access to GHC session specific parts is explicit and so that the
TcM can provide their (correct) implementation of lookupName.
|
| |\ \
| | |/
| |/| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The getGADTConTypeG used HsRecTy, which is at odds with GHC issue #18782.
I noticed that getGADTConTypeG was only used in the Hoogle backend.
Interestingly, when handling H98 constructors, Hoogle converts RecCon to
PrefixCon (see Haddock.Backends.Hoogle.ppCtor).
So I changed getGADTConTypeG to handle RecConGADT in the same manner as
PrefixConGADT, and after this simplification moved it into the 'where'
clause of ppCtor, to the only place where it is used.
The practical effect of this change is as follows.
Consider this example:
data TestH98 = T98 { bar::Int }
data TestGADT where
TG :: { foo :: Int } -> TestGADT
Before this patch, haddock --hoogle used to produce:
T98 :: Int -> TestH98
[TG] :: {foo :: Int} -> TestGADT
Notice how the record syntax was discarded in T98 but not TG.
With this patch, we always produce signatures without record syntax:
T98 :: Int -> TestH98
[TG] :: Int -> TestGADT
I suspect this might also be a bugfix, as currently Hoogle doesn't seem
to render GADT record constructors properly.
|