X-Git-Url: https://git.lukelau.me/?a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest%2FParsing.hs;h=fdd01c2a047b7d620ee606334ae96c9805a01ee3;hb=88c70a40654c7152fb50b2a4e171fbdc00324f51;hp=81e5cbed3d64b5ece0f330ea686c7f2b92cce110;hpb=7b99b44066a1fce5a5956452a1d658045631c8f9;p=lsp-test.git diff --git a/src/Language/Haskell/LSP/Test/Parsing.hs b/src/Language/Haskell/LSP/Test/Parsing.hs index 81e5cbe..fdd01c2 100644 --- a/src/Language/Haskell/LSP/Test/Parsing.hs +++ b/src/Language/Haskell/LSP/Test/Parsing.hs @@ -31,6 +31,7 @@ newtype SessionState = SessionState } 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', @@ -45,19 +46,19 @@ type ParserStateReader a s r m = ConduitParser a (StateT s (ReaderT r m)) 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 @@ -65,11 +66,11 @@ loggingNotification = satisfy shouldSkip 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