Skip to content

Commit 204fdcb

Browse files
authored
Trace more Shake evaluation details (#1861)
* Trace more Shake evaluation details * Fix changed
1 parent 401cdef commit 204fdcb

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

ghcide/src/Development/IDE/Core/Shake.hs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -829,9 +829,9 @@ defineEarlyCutoff
829829
:: IdeRule k v
830830
=> RuleBody k v
831831
-> Rules ()
832-
defineEarlyCutoff (Rule op) = addRule $ \(Q (key, file)) (old :: Maybe BS.ByteString) mode -> otTracedAction key file isSuccess $ do
832+
defineEarlyCutoff (Rule op) = addRule $ \(Q (key, file)) (old :: Maybe BS.ByteString) mode -> otTracedAction key file mode isSuccess $ do
833833
defineEarlyCutoff' True key file old mode $ op key file
834-
defineEarlyCutoff (RuleNoDiagnostics op) = addRule $ \(Q (key, file)) (old :: Maybe BS.ByteString) mode -> otTracedAction key file isSuccess $ do
834+
defineEarlyCutoff (RuleNoDiagnostics op) = addRule $ \(Q (key, file)) (old :: Maybe BS.ByteString) mode -> otTracedAction key file mode isSuccess $ do
835835
defineEarlyCutoff' False key file old mode $ second (mempty,) <$> op key file
836836

837837
defineNoFile :: IdeRule k v => (k -> Action v) -> Rules ()
@@ -904,9 +904,9 @@ defineEarlyCutoff' doDiagnostics key file old mode action = do
904904
(encodeShakeValue bs) $
905905
A res
906906

907-
isSuccess :: RunResult (A v) -> Bool
908-
isSuccess (RunResult _ _ (A Failed{})) = False
909-
isSuccess _ = True
907+
isSuccess :: A v -> Bool
908+
isSuccess (A Failed{}) = False
909+
isSuccess _ = True
910910

911911
-- | Rule type, input file
912912
data QDisk k = QDisk k NormalizedFilePath

ghcide/src/Development/IDE/Core/Tracing.hs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import Development.IDE.Core.RuleTypes (GhcSession (GhcSession),
3333
GhcSessionDeps (GhcSessionDeps),
3434
GhcSessionIO (GhcSessionIO))
3535
import Development.IDE.Graph (Action, actionBracket)
36+
import Development.IDE.Graph.Rule
3637
import Development.IDE.Types.Location (Uri (..))
3738
import Development.IDE.Types.Logger (Logger, logDebug, logInfo)
3839
import Development.IDE.Types.Shake (Key (..), Value,
@@ -77,21 +78,25 @@ otTracedAction
7778
:: Show k
7879
=> k -- ^ The Action's Key
7980
-> NormalizedFilePath -- ^ Path to the file the action was run for
80-
-> (a -> Bool) -- ^ Did this action succeed?
81-
-> Action a -- ^ The action
82-
-> Action a
83-
otTracedAction key file success act
81+
-> RunMode
82+
-> (a -> Bool)
83+
-> Action (RunResult a) -- ^ The action
84+
-> Action (RunResult a)
85+
otTracedAction key file mode success act
8486
| userTracingEnabled =
8587
actionBracket
8688
(do
8789
sp <- beginSpan (fromString (show key))
8890
setTag sp "File" (fromString $ fromNormalizedFilePath file)
91+
setTag sp "Mode" (fromString $ show mode)
8992
return sp
9093
)
9194
endSpan
9295
(\sp -> do
9396
res <- act
94-
unless (success res) $ setTag sp "error" "1"
97+
unless (success $ runValue res) $ setTag sp "error" "1"
98+
setTag sp "changed" $ case res of
99+
RunResult x _ _ -> fromString $ show x
95100
return res)
96101
| otherwise = act
97102

0 commit comments

Comments
 (0)