}
type ParserStateReader a s r m = ConduitParser a (StateT s (ReaderT r m))
+
-- | A session representing one instance of launching and connecting to a server.
--
-- You can send and receive messages to the server within 'Session' via 'getMessage',
type Session = ParserStateReader FromServerMessage SessionState SessionContext IO
-- | Matches if the message is a notification.
-notification :: Session FromServerMessage
+notification :: Monad m => ConduitParser FromServerMessage m FromServerMessage
notification = satisfy isServerNotification
-- | Matches if the message is a request.
-request :: Session FromServerMessage
+request :: Monad m => ConduitParser FromServerMessage m FromServerMessage
request = satisfy isServerRequest
-- | Matches if the message is a response.
-response :: Session FromServerMessage
+response :: Monad m => ConduitParser FromServerMessage m FromServerMessage
response = satisfy isServerResponse
-- | Matches if the message is a log message notification or a show message notification/request.
-loggingNotification :: Session FromServerMessage
+loggingNotification :: Monad m => ConduitParser FromServerMessage m FromServerMessage
loggingNotification = satisfy shouldSkip
where
shouldSkip (NotLogMessage _) = True
shouldSkip (ReqShowMessage _) = True
shouldSkip _ = False
-publishDiagnosticsNotification :: Session PublishDiagnosticsNotification
+publishDiagnosticsNotification :: Monad m => ConduitParser FromServerMessage m PublishDiagnosticsNotification
publishDiagnosticsNotification = do
- (NotPublishDiagnostics diags) <- satisfy test
+ NotPublishDiagnostics diags <- satisfy test
return diags
- where test (NotPublishDiagnostics _) = False
+ where test (NotPublishDiagnostics _) = True
test _ = False
satisfy :: Monad m => (a -> Bool) -> ConduitParser a m a