X-Git-Url: http://git.lukelau.me/?a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest%2FExceptions.hs;h=c130702bd15f2ed55d6776f7edaf4d525e72100a;hb=3581d880c87b59cc4c856aee83f77fea9a38890b;hp=e9c65f9598711b89963884e5207488e471655548;hpb=bd6901688e6c9d8332fea161260d32666885f9ed;p=opengl.git diff --git a/src/Language/Haskell/LSP/Test/Exceptions.hs b/src/Language/Haskell/LSP/Test/Exceptions.hs index e9c65f9..c130702 100644 --- a/src/Language/Haskell/LSP/Test/Exceptions.hs +++ b/src/Language/Haskell/LSP/Test/Exceptions.hs @@ -2,10 +2,14 @@ module Language.Haskell.LSP.Test.Exceptions where import Control.Exception import Language.Haskell.LSP.Messages +import Data.Aeson +import qualified Data.ByteString.Lazy.Char8 as B data SessionException = TimeoutException | UnexpectedMessageException String FromServerMessage | ReplayOutOfOrderException FromServerMessage [FromServerMessage] + | UnexpectedDiagnosticsException + | IncorrectApplyEditRequestException String instance Exception SessionException @@ -17,8 +21,12 @@ instance Show SessionException where "Last message accepted: " ++ show lastMsg show (ReplayOutOfOrderException received expected) = "Replay is out of order:\n" ++ - "Received from server:" ++ show received ++ "\n" ++ - "Expected one of: " ++ concatMap show expected + -- 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 anySessionException :: SessionException -> Bool anySessionException = const True \ No newline at end of file