From a4f829c51737917afb62bb1fa7e1e31577c69b09 Mon Sep 17 00:00:00 2001 From: Oleg Grenrus Date: Mon, 28 Sep 2015 10:50:12 +0300 Subject: [PATCH 1/2] Use --hyperlinked-source if available --- src/Stack/Build/Execute.hs | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Stack/Build/Execute.hs b/src/Stack/Build/Execute.hs index 3bb020816a..613e0f9d89 100644 --- a/src/Stack/Build/Execute.hs +++ b/src/Stack/Build/Execute.hs @@ -974,12 +974,21 @@ singleBuild runInBase ac@ActionContext {..} ee@ExecuteEnv {..} task@Task {..} in when (doHaddock package) $ do announce "haddock" - hscolourExists <- doesExecutableExist eeEnvOverride "HsColour" - unless hscolourExists $ $logWarn - ("Warning: haddock not generating hyperlinked sources because 'HsColour' not\n" <> - "found on PATH (use 'stack install hscolour' to install).") + sourceFlag <- do + hyped <- tryProcessStdout Nothing eeEnvOverride "haddock" ["--hyperlinked-source"] + case hyped of + -- Fancy crosslinked source + Right _ -> do + return ["--haddock-option=--hyperlinked-source"] + -- Older hscolour colouring + Left _ -> do + hscolourExists <- doesExecutableExist eeEnvOverride "HsColour" + unless hscolourExists $ $logWarn + ("Warning: haddock not generating hyperlinked sources because 'HsColour' not\n" <> + "found on PATH (use 'stack install hscolour' to install).") + return ["--hyperlink-source" | hscolourExists] cabal False (concat [["haddock", "--html", "--hoogle", "--html-location=../$pkg-$version/"] - ,["--hyperlink-source" | hscolourExists] + ,sourceFlag ,["--ghcjs" | wc == Ghcjs]]) withMVar eeInstallLock $ \() -> do From d07b7be5511cd0988333f23d85360cc51f51dd63 Mon Sep 17 00:00:00 2001 From: Oleg Grenrus Date: Tue, 29 Sep 2015 18:30:25 +0300 Subject: [PATCH 2/2] Update ChangeLog (--hyperlinked-source) --- ChangeLog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog.md b/ChangeLog.md index 39208ffc33..32a8ca2eee 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -21,6 +21,7 @@ Other enhancements: can still get this behavior by running the following yourself: `stack exec -- pacman -Sy --noconfirm git`. * Typing enter during --file-watch triggers a rebuild [#1023](https://github.com/commercialhaskell/stack/pull/1023) +* Use Haddock's `--hyperlinked-source` (crosslinked source), if available [#1070](https://github.com/commercialhaskell/stack/pull/1070) Bug fixes: