Skip to content

Commit b91e568

Browse files
committed
Match changes to rebased ghcide
1 parent b02bf33 commit b91e568

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

exe/Rules.hs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ import Data.ByteString.Base16 (encode)
1717
import qualified Data.ByteString.Char8 as B
1818
import Data.Functor ((<&>))
1919
import Data.Maybe (fromMaybe)
20-
import Data.Text (Text)
20+
import Data.Text (pack, Text)
2121
import Development.IDE.Core.Rules (defineNoFile)
2222
import Development.IDE.Core.Service (getIdeOptions)
23-
import Development.IDE.Core.Shake (sendEvent, define, useNoFile_)
23+
import Development.IDE.Core.Shake (actionLogger, sendEvent, define, useNoFile_)
2424
import Development.IDE.GHC.Util
2525
import Development.IDE.Types.Location (fromNormalizedFilePath)
2626
import Development.IDE.Types.Options (IdeOptions(IdeOptions, optTesting))
@@ -42,6 +42,7 @@ import System.FilePath.Posix (addTrailingPathSeparator,
4242
import Language.Haskell.LSP.Messages as LSP
4343
import Language.Haskell.LSP.Types as LSP
4444
import Data.Aeson (ToJSON(toJSON))
45+
import Development.IDE.Types.Logger (logDebug)
4546

4647
-- Prefix for the cache path
4748
cacheDir :: String
@@ -63,18 +64,23 @@ loadGhcSession =
6364

6465
cradleToSession :: Rules ()
6566
cradleToSession = define $ \LoadCradle nfp -> do
67+
6668
let f = fromNormalizedFilePath nfp
6769

6870
IdeOptions{optTesting} <- getIdeOptions
6971

72+
logger <- actionLogger
73+
liftIO $ logDebug logger $ "Running cradle " <> pack (fromNormalizedFilePath nfp)
74+
7075
-- If the path points to a directory, load the implicit cradle
7176
mbYaml <- doesDirectoryExist f <&> \isDir -> if isDir then Nothing else Just f
72-
cradle <- liftIO $ maybe (loadImplicitCradle $ addTrailingPathSeparator f) loadCradle mbYaml
77+
cradle <- liftIO $ maybe (loadImplicitCradle $ addTrailingPathSeparator f) loadCradle mbYaml
7378

7479
when optTesting $
7580
sendEvent $ notifyCradleLoaded f
7681

77-
cmpOpts <- liftIO $ getComponentOptions cradle
82+
-- Avoid interrupting `getComponentOptions` since it calls external processes
83+
cmpOpts <- liftIO $ mask $ \_ -> getComponentOptions cradle
7884
let opts = componentOptions cmpOpts
7985
deps = componentDependencies cmpOpts
8086
deps' = case mbYaml of

0 commit comments

Comments
 (0)