@@ -15,6 +15,7 @@ import qualified Data.Set as S
15import qualified Language.PureScript as P
15import qualified Language.PureScript as P
16import Language.PureScript.Errors.JSON
16import Language.PureScript.Errors.JSON
17import Language.PureScript.Ide.Error
17import Language.PureScript.Ide.Error
18+import Language.PureScript.Ide.Logging
18import Language.PureScript.Ide.State
19import Language.PureScript.Ide.State
19import Language.PureScript.Ide.Types
20import Language.PureScript.Ide.Types
20import System.IO.UTF8 (readUTF8FileT)
21import System.IO.UTF8 (readUTF8FileT)
@@ -51,7 +52,7 @@ rebuildFile path = do
52 -- Externs files must be sorted ahead of time, so that they get applied
53 -- Externs files must be sorted ahead of time, so that they get applied
53 -- correctly to the 'Environment'.
54 -- correctly to the 'Environment'.
54− externs <- sortExterns m =<< getExternFiles
55+ externs <- logPerf (labelTimespec "Sorting externs") (sortExterns m =<< getExternFiles)
56 outputDirectory <- confOutputPath . ideConfiguration <$> ask
57 outputDirectory <- confOutputPath . ideConfiguration <$> ask
@@ -62,25 +63,28 @@ rebuildFile path = do
63 let makeEnv = MakeActionsEnv outputDirectory filePathMap foreigns False
64 let makeEnv = MakeActionsEnv outputDirectory filePathMap foreigns False
64 -- Rebuild the single module using the cached externs
65 -- Rebuild the single module using the cached externs
66+ (result, warnings) <- logPerf (labelTimespec "Rebuilding Module") $
65− (result, warnings) <- liftIO
67+ liftIO
66 . P.runMake P.defaultOptions
68 . P.runMake P.defaultOptions
67 . P.rebuildModule (buildMakeActions
69 . P.rebuildModule (buildMakeActions
68 >>= shushProgress $ makeEnv) externs $ m
70 >>= shushProgress $ makeEnv) externs $ m
69 case result of
71 case result of
70 Left errors -> throwError (RebuildError (toJSONErrors False P.Error errors))
72 Left errors -> throwError (RebuildError (toJSONErrors False P.Error errors))
71 Right _ -> do
73 Right _ -> do
75+ let ll = confLogLevel (ideConfiguration env)
72− rebuildModuleOpen makeEnv externs m
76+ _ <- liftIO (async (runLogger ll (runReaderT (rebuildModuleOpen makeEnv externs m) env)))
73 pure (RebuildSuccess (toJSONErrors False P.Warning warnings))
77 pure (RebuildSuccess (toJSONErrors False P.Warning warnings))
75-- | Rebuilds a module but opens up its export list first and stores the result
79-- | Rebuilds a module but opens up its export list first and stores the result
76-- inside the rebuild cache
80-- inside the rebuild cache
77rebuildModuleOpen
81rebuildModuleOpen
78− :: (Ide m, MonadLogger m, MonadError PscIdeError m)
82+ :: (Ide m, MonadLogger m)
79 => MakeActionsEnv
83 => MakeActionsEnv
80 -> [P.ExternsFile]
84 -> [P.ExternsFile]
81 -> P.Module
85 -> P.Module
83−rebuildModuleOpen makeEnv externs m = do
87+rebuildModuleOpen makeEnv externs m = void $ runExceptT $ do
84 (openResult, _) <- liftIO
88 (openResult, _) <- liftIO
85 . P.runMake P.defaultOptions
89 . P.runMake P.defaultOptions
86 . P.rebuildModule (buildMakeActions
90 . P.rebuildModule (buildMakeActions