Is anyone still using Intero? @chrisdone announced the project had reached its end of life in November 2019.
I ask because parts of Stack’s code base seem to check for it. If Intero’s time has now passed, then that code could be simplified.
Is anyone still using Intero? @chrisdone announced the project had reached its end of life in November 2019.
I ask because parts of Stack’s code base seem to check for it. If Intero’s time has now passed, then that code could be simplified.
Haven’t heard that name in a looooong time.
I’d be surprised if anyone was still using it, to be honest
Me too. I’d been using for a few years, but when it died off I just moved to dante
and have been using it since then.
I’d also be surprised to hear of any active users of Intero. As I recall, I switched to dante
pretty soon after it was deprecated (and thence to HLS some time later).
I’m a bit confused why parts of a build tool’s code base check for an IDE. Perhaps there’s more to this than meets the eye?
I might be wrong but I understand that intero was a fork of ghci (with a few goodies which have been merged back into ghci). I would assume than stack will launch intero
instead of ghic
when doing things like stack repl
. This is a total guess, so I might be totally wrong.
On what Stack is doing, it is indeed GHCi-related. Stack.Ghci.runGhci
has (extract only):
-- TODO: Consider optimizing this check. Perhaps if no
-- "with-ghc" is specified, assume that it is not using intero.
checkIsIntero =
-- Optimization dependent on the behavior of renderScript -
-- it doesn't matter if it's intero or ghci when loading
-- multiple packages.
case pkgs of
[_] -> do
menv <- liftIO $ configProcessContextSettings config defaultEnvSettings
output <- withProcessContext menv
$ runGrabFirstLine (fromMaybe compilerExeName ghciGhcCommand) ["--version"]
pure $ "Intero" `L.isPrefixOf` output
_ -> pure False
and Stack.Ghci.renderScript
has (extract only):
renderScript ::
Bool
-> [GhciPkgInfo]
-> Maybe (Path Abs File)
-> Bool
-> [Path Abs File]
-> GhciScript
renderScript isIntero pkgs mainFile onlyMain extraFiles = do
let cdPhase = case (isIntero, pkgs) of
-- If only loading one package, set the cwd properly.
-- Otherwise don't try. See
-- https://github.com/commercialhaskell/stack/issues/3309
(True, [pkg]) -> cmdCdGhc (ghciPkgDir pkg)
_ -> mempty