module Language.Haskell.LSP.Test.Exceptions where
import Control.Exception
-import Language.Haskell.LSP.Messages
import Language.Haskell.LSP.Types
import Data.Aeson
import Data.Aeson.Encode.Pretty
| ReplayOutOfOrder FromServerMessage [FromServerMessage]
| UnexpectedDiagnostics
| IncorrectApplyEditRequest String
- | UnexpectedResponseError LspIdRsp ResponseError
+ | UnexpectedResponseError SomeLspId ResponseError
| UnexpectedServerTermination
+ | IllegalInitSequenceMessage FromServerMessage
deriving Eq
instance Exception SessionException
show (UnexpectedResponseError lid e) = "Received an exepected error in a response for id " ++ show lid ++ ":\n"
++ show e
show UnexpectedServerTermination = "Language server unexpectedly terminated"
+ show (IllegalInitSequenceMessage msg) =
+ "Received an illegal message between the initialize request and response:\n"
+ ++ B.unpack (encodePretty msg)
-- | A predicate that matches on any 'SessionException'
anySessionException :: SessionException -> Bool