@@ -35,13 +35,14 @@ import Data.Bifunctor (Bifunctor (first))
3535import Data.Char (isSpace )
3636import qualified Data.HashMap.Strict as Map
3737import Data.List (find )
38- import Data.Maybe (catMaybes )
38+ import Data.Maybe (fromMaybe , catMaybes )
3939import Data.String (IsString (fromString ))
4040import Data.Text (Text )
4141import qualified Data.Text as T
4242import Data.Time (getCurrentTime )
4343import Development.IDE
44- import Development.IDE.GHC.Compat (DynFlags , ExecResult (.. ), GeneralFlag (Opt_IgnoreHpcChanges , Opt_IgnoreOptimChanges , Opt_ImplicitImportQualified ),
44+ import Development.IDE.GHC.Compat (DynFlags (importPaths ), ExecResult (.. ),
45+ GeneralFlag (Opt_IgnoreHpcChanges , Opt_IgnoreOptimChanges , Opt_ImplicitImportQualified ),
4546 Ghc , GhcLink (LinkInMemory ),
4647 GhcMode (CompManager ),
4748 HscTarget (HscInterpreted ),
@@ -61,10 +62,9 @@ import Development.IDE.GHC.Compat (DynFlags, ExecResult (..), GeneralF
6162 setTargets , simpleImportDecl ,
6263 typeKind , ways )
6364import DynamicLoading (initializePlugins )
64- import DynFlags (targetPlatform )
6565import GHC.Generics (Generic )
6666import GhcMonad (modifySession )
67- import GhcPlugins (defaultLogActionHPutStrDoc ,
67+ import GhcPlugins (targetPlatform , defaultLogActionHPutStrDoc ,
6868 gopt_set , gopt_unset , interpWays ,
6969 updateWays , wayGeneralFlags ,
7070 wayUnsetGeneralFlags )
@@ -195,7 +195,11 @@ runEvalCmd lsp state EvalParams {..} = withIndefiniteProgress lsp "Eval" Cancell
195195 hscEnv' <- ExceptT $
196196 evalGhcEnv (hscEnv session) $ do
197197 env <- getSession
198+ -- Install the module pragmas and options
198199 df <- liftIO $ setupDynFlagsForGHCiLike env $ ms_hspp_opts ms
200+ -- Restore the cradle import paths
201+ df <- return df{importPaths = fromMaybe (importPaths df) $ envImportPaths session}
202+ -- Set the modified flags in the session
199203 _lp <- setSessionDynFlags df
200204
201205 -- copy the package state to the interactive DynFlags
@@ -295,7 +299,7 @@ evalGhciLikeCmd cmd arg = do
295299 df <- getSessionDynFlags
296300 case lookup cmd ghciLikeCommands
297301 <|> snd <$> find (T. isPrefixOf cmd . fst ) ghciLikeCommands of
298- Just hndler ->
302+ Just hndler ->
299303 fmap
300304 (T. unlines . map (" -- " <> ) . T. lines
301305 )
0 commit comments