@@ -12,8 +12,8 @@ module Language.LSP.Server.Control (
12
12
import Colog.Core (LogAction (.. ), Severity (.. ), WithSeverity (.. ), (<&) )
13
13
import Colog.Core qualified as L
14
14
import Control.Applicative ((<|>) )
15
- import Control.Concurrent.Async (withAsync , wait , cancel , race )
16
15
import Control.Concurrent (threadDelay )
16
+ import Control.Concurrent.Async (cancel , race , wait , withAsync )
17
17
import Control.Concurrent.STM.TChan
18
18
import Control.Exception (catchJust , throwIO )
19
19
import Control.Monad.IO.Class
@@ -157,7 +157,7 @@ runServerWith ioLogger logger clientIn clientOut serverDefinition = do
157
157
-- Wait up to 3 seconds for the sender to finish; cancel if it doesn't.
158
158
r <- race (wait _sendAsync) (threadDelay 3_000_000 )
159
159
case r of
160
- Left _ -> pure ()
160
+ Left _ -> pure ()
161
161
Right _ -> ioLogger <& SenderShutdownTimeout `WithSeverity ` Warning
162
162
ioLogger <& ServerStopped `WithSeverity ` Info
163
163
return res
@@ -196,13 +196,15 @@ ioLoop ioLogger logger clientIn serverDefinition vfs sendMsg = do
196
196
where
197
197
go r = do
198
198
b <- isExiting
199
- if b then pure 0 else do
200
- res <- parseOne logger clientIn r
201
- case res of
202
- Nothing -> pure 1
203
- Just (msg, remainder) -> do
204
- Processing. processMessage pLogger $ BSL. fromStrict msg
205
- go (parse parser remainder)
199
+ if b
200
+ then pure 0
201
+ else do
202
+ res <- parseOne logger clientIn r
203
+ case res of
204
+ Nothing -> pure 1
205
+ Just (msg, remainder) -> do
206
+ Processing. processMessage pLogger $ BSL. fromStrict msg
207
+ go (parse parser remainder)
206
208
207
209
parser = do
208
210
try contentType <|> return ()
0 commit comments