X-Git-Url: https://git.lukelau.me/?a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest%2FExceptions.hs;h=3f122f25281accde8bd063c8d52f6cd6520c8a39;hb=3b8d5fe55d1e542587817341a797345270ca7a96;hp=a25c802d5bcfd3750f03f2d46c8bad5412aea353;hpb=493d20ada6e48a8987e00a5ec92a1b31fe3c9b8c;p=lsp-test.git diff --git a/src/Language/Haskell/LSP/Test/Exceptions.hs b/src/Language/Haskell/LSP/Test/Exceptions.hs index a25c802..3f122f2 100644 --- a/src/Language/Haskell/LSP/Test/Exceptions.hs +++ b/src/Language/Haskell/LSP/Test/Exceptions.hs @@ -2,9 +2,16 @@ module Language.Haskell.LSP.Test.Exceptions where import Control.Exception import Language.Haskell.LSP.Messages +import Language.Haskell.LSP.Types +import Data.Aeson +import qualified Data.ByteString.Lazy.Char8 as B data SessionException = TimeoutException | UnexpectedMessageException String FromServerMessage + | ReplayOutOfOrderException FromServerMessage [FromServerMessage] + | UnexpectedDiagnosticsException + | IncorrectApplyEditRequestException String + | UnexpectedResponseError LspIdRsp ResponseError instance Exception SessionException @@ -14,6 +21,16 @@ instance Show SessionException where "Received an unexpected message from the server:\n" ++ "Expected: " ++ expected ++ "\n" ++ "Last message accepted: " ++ show lastMsg + show (ReplayOutOfOrderException received expected) = + "Replay is out of order:\n" ++ + -- Print json so its a bit easier to update the session logs + "Received from server:\n" ++ B.unpack (encode received) ++ "\n" ++ + "Expected one of:\n" ++ unlines (map (B.unpack . encode) expected) + show UnexpectedDiagnosticsException = "Unexpectedly received diagnostics from the server." + show (IncorrectApplyEditRequestException msgStr) = "ApplyEditRequest didn't contain document, instead received:\n" + ++ msgStr + show (UnexpectedResponseError lid e) = "Received an exepected error in a response for id " ++ show lid ++ ":\n" + ++ show e anySessionException :: SessionException -> Bool anySessionException = const True \ No newline at end of file