You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Aug 3, 2024. It is now read-only.
Fix hyperlinks to external items and modules (#1482)
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 ab53ccf)
0 commit comments