@@ -35,13 +35,14 @@ import Data.Bifunctor (Bifunctor (first))
35
35
import Data.Char (isSpace )
36
36
import qualified Data.HashMap.Strict as Map
37
37
import Data.List (find )
38
- import Data.Maybe (catMaybes )
38
+ import Data.Maybe (fromMaybe , catMaybes )
39
39
import Data.String (IsString (fromString ))
40
40
import Data.Text (Text )
41
41
import qualified Data.Text as T
42
42
import Data.Time (getCurrentTime )
43
43
import 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 ),
45
46
Ghc , GhcLink (LinkInMemory ),
46
47
GhcMode (CompManager ),
47
48
HscTarget (HscInterpreted ),
@@ -61,10 +62,9 @@ import Development.IDE.GHC.Compat (DynFlags, ExecResult (..), GeneralF
61
62
setTargets , simpleImportDecl ,
62
63
typeKind , ways )
63
64
import DynamicLoading (initializePlugins )
64
- import DynFlags (targetPlatform )
65
65
import GHC.Generics (Generic )
66
66
import GhcMonad (modifySession )
67
- import GhcPlugins (defaultLogActionHPutStrDoc ,
67
+ import GhcPlugins (targetPlatform , defaultLogActionHPutStrDoc ,
68
68
gopt_set , gopt_unset , interpWays ,
69
69
updateWays , wayGeneralFlags ,
70
70
wayUnsetGeneralFlags )
@@ -195,7 +195,11 @@ runEvalCmd lsp state EvalParams {..} = withIndefiniteProgress lsp "Eval" Cancell
195
195
hscEnv' <- ExceptT $
196
196
evalGhcEnv (hscEnv session) $ do
197
197
env <- getSession
198
+ -- Install the module pragmas and options
198
199
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
199
203
_lp <- setSessionDynFlags df
200
204
201
205
-- copy the package state to the interactive DynFlags
@@ -295,7 +299,7 @@ evalGhciLikeCmd cmd arg = do
295
299
df <- getSessionDynFlags
296
300
case lookup cmd ghciLikeCommands
297
301
<|> snd <$> find (T. isPrefixOf cmd . fst ) ghciLikeCommands of
298
- Just hndler ->
302
+ Just hndler ->
299
303
fmap
300
304
(T. unlines . map (" -- " <> ) . T. lines
301
305
)
0 commit comments