This is the same problem as haskell/haskell-language-server#4579. I believe the "bug" is in the vscode extension so I opened this. Also, I can reproduce on linux with recent enough ghc versions, i.e starting with ghc-9.8.4.
The crux is that HLS is sending the URIs for the locally stored docs, e.g.
[Documentation](file:///home/vscode/.ghcup/ghc/9.8.4/share/doc/ghc-9.8.4/html/libraries/base-4.19.2.0-9fbd/System-IO.html#v:putStrLn)
[Source](file:///home/vscode/.ghcup/ghc/9.8.4/share/doc/ghc-9.8.4/html/libraries/base-4.19.2.0-9fbd/src/System.IO.html#putStrLn)
and vscode-haskell
does some mangling to point them to Hackage instead. Since ghc-9.8.4 the mangling is insufficient, as it keeps the -9fbd
suffix in the URI, which is not correct.
The package directories are named $pkg_name-$pkg_ver-$hex
where $hex is 4 hex digits. We want to drop the -$hex
suffix, and since $pkg_ver
cannot contain -
it's actually unambiguous.