X-Git-Url: http://git.lukelau.me/?a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest%2FExceptions.hs;h=e1e281fa435486e6bdd4bd4c9b9dfbcc2c1134d9;hb=eab96ad6f11e0f76380d9cc600724f94c4523915;hp=28903dc76d46ea1d9a4a9c2d7b5202793beeb8f7;hpb=82a682ce648c48c890949ad67fc22900448dc94e;p=opengl.git diff --git a/src/Language/Haskell/LSP/Test/Exceptions.hs b/src/Language/Haskell/LSP/Test/Exceptions.hs index 28903dc..e1e281f 100644 --- a/src/Language/Haskell/LSP/Test/Exceptions.hs +++ b/src/Language/Haskell/LSP/Test/Exceptions.hs @@ -3,12 +3,14 @@ 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 import Data.Algorithm.Diff import Data.Algorithm.DiffOutput import Data.List import qualified Data.ByteString.Lazy.Char8 as B +-- | An exception that can be thrown during a 'Haskell.LSP.Test.Session.Session' data SessionException = Timeout | UnexpectedMessage String FromServerMessage | ReplayOutOfOrder FromServerMessage [FromServerMessage] @@ -33,6 +35,7 @@ instance Show SessionException where in "Replay is out of order:\n" ++ -- Print json so its a bit easier to update the session logs "Received from server:\n" ++ B.unpack (encodePretty received) ++ "\n" ++ + "Raw from server:\n" ++ B.unpack (encode received) ++ "\n" ++ "Expected one of:\n" ++ unlines (map showExp expected') show UnexpectedDiagnostics = "Unexpectedly received diagnostics from the server." show (IncorrectApplyEditRequest msgStr) = "ApplyEditRequest didn't contain document, instead received:\n" @@ -40,5 +43,6 @@ instance Show SessionException where show (UnexpectedResponseError lid e) = "Received an exepected error in a response for id " ++ show lid ++ ":\n" ++ show e +-- | A predicate that matches on any 'SessionException' anySessionException :: SessionException -> Bool anySessionException = const True