Skip to content

Commit 7fc92b1

Browse files
committed
apply review feedbacks
1 parent 2f3b2be commit 7fc92b1

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

Diff for: ghcide/src/Development/IDE/Core/ProgressReporting.hs

+9-7
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ noProgressReporting = return $ ProgressReporting
5151
-- | State used in 'delayedProgressReporting'
5252
data State
5353
= NotStarted
54-
| Completed
5554
| Stopped
5655
| Running (Async ())
5756

@@ -61,9 +60,8 @@ data Transition = Event ProgressEvent | StopProgress
6160
updateState :: IO () -> Transition -> State -> IO State
6261
updateState _ _ Stopped = pure Stopped
6362
updateState start (Event KickStarted) NotStarted = Running <$> async start
64-
updateState start (Event KickStarted) Completed = Running <$> async start
6563
updateState start (Event KickStarted) (Running a) = cancel a >> Running <$> async start
66-
updateState _ (Event KickCompleted) (Running a) = cancel a $> Completed
64+
updateState _ (Event KickCompleted) (Running a) = cancel a $> NotStarted
6765
updateState _ (Event KickCompleted) st = pure st
6866
updateState _ StopProgress (Running a) = cancel a $> Stopped
6967
updateState _ StopProgress st = pure st
@@ -96,8 +94,10 @@ delayedProgressReporting
9694
delayedProgressReporting before after lspEnv optProgressStyle = do
9795
inProgressVar <- newVar $ InProgress 0 0 mempty
9896
progressState <- newVar NotStarted
99-
let progressUpdate event = modifyVar_ progressState $ updateState (mRunLspT lspEnv $ lspShakeProgress inProgressVar) (Event event)
100-
progressStop = modifyVar_ progressState $ updateState (mRunLspT lspEnv $ lspShakeProgress inProgressVar) StopProgress
97+
let progressUpdate event = updateStateVar $ Event event
98+
progressStop = updateStateVar StopProgress
99+
updateStateVar = modifyVar_ progressState . updateState (mRunLspT lspEnv $ lspShakeProgress inProgressVar)
100+
101101
inProgress :: NormalizedFilePath -> Action a -> Action a
102102
inProgress = withProgressVar inProgressVar
103103
return ProgressReporting{..}
@@ -132,12 +132,14 @@ delayedProgressReporting before after lspEnv optProgressStyle = do
132132
{ _message = Nothing
133133
}
134134
}
135+
loop _ _ | optProgressStyle == NoProgress =
136+
forever $ liftIO $ threadDelay maxBound
135137
loop id prev = do
136138
InProgress{..} <- liftIO $ readVar inProgress
139+
liftIO $ sleep after
137140
if todo == 0 then loop id 0 else do
138141
let next = 100 * fromIntegral done / fromIntegral todo
139-
liftIO $ sleep after
140-
when (optProgressStyle /= NoProgress && next /= prev) $
142+
when (next /= prev) $
141143
LSP.sendNotification LSP.SProgress $
142144
LSP.ProgressParams
143145
{ _token = id

0 commit comments

Comments
 (0)