projects
/
lsp-test.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add diff to replay error output
[lsp-test.git]
/
src
/
Language
/
Haskell
/
LSP
/
Test
/
Exceptions.hs
diff --git
a/src/Language/Haskell/LSP/Test/Exceptions.hs
b/src/Language/Haskell/LSP/Test/Exceptions.hs
index b337f0bee70032fc1b7595247966ca5a1ca6bedf..28903dc76d46ea1d9a4a9c2d7b5202793beeb8f7 100644
(file)
--- a/
src/Language/Haskell/LSP/Test/Exceptions.hs
+++ b/
src/Language/Haskell/LSP/Test/Exceptions.hs
@@
-3,7
+3,10
@@
module Language.Haskell.LSP.Test.Exceptions where
import Control.Exception
import Language.Haskell.LSP.Messages
import Language.Haskell.LSP.Types
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
data SessionException = Timeout
import qualified Data.ByteString.Lazy.Char8 as B
data SessionException = Timeout
@@
-23,10
+26,14
@@
instance Show SessionException where
"Was parsing: " ++ expected ++ "\n" ++
"Last message received: " ++ show lastMsg
show (ReplayOutOfOrder received expected) =
"Was parsing: " ++ expected ++ "\n" ++
"Last message received: " ++ show lastMsg
show (ReplayOutOfOrder received expected) =
- "Replay is out of order:\n" ++
+ let expected' = nub expected
+ getJsonDiff = lines . B.unpack . encodePretty
+ showExp exp = B.unpack (encodePretty exp) ++ "\nDiff:\n" ++
+ ppDiff (getGroupedDiff (getJsonDiff received) (getJsonDiff exp))
+ in "Replay is out of order:\n" ++
-- Print json so its a bit easier to update the session logs
-- 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
)
+
"Received from server:\n" ++ B.unpack (encodePretty
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"
++ msgStr
show UnexpectedDiagnostics = "Unexpectedly received diagnostics from the server."
show (IncorrectApplyEditRequest msgStr) = "ApplyEditRequest didn't contain document, instead received:\n"
++ msgStr