X-Git-Url: http://git.lukelau.me/?a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest%2FDecoding.hs;h=43810bbe7c28fa95e47a7795d65190a8598fc42f;hb=5822dd40ae06ed413727cfeb3d1fd24b285db9e5;hp=b3929abbf4da57d983015597b929707213cd97c4;hpb=107d162a748586f20a49d3513a6c130196c8f61a;p=lsp-test.git diff --git a/src/Language/Haskell/LSP/Test/Decoding.hs b/src/Language/Haskell/LSP/Test/Decoding.hs index b3929ab..43810bb 100644 --- a/src/Language/Haskell/LSP/Test/Decoding.hs +++ b/src/Language/Haskell/LSP/Test/Decoding.hs @@ -13,6 +13,7 @@ import Language.Haskell.LSP.Types import Language.Haskell.LSP.Types.Lens hiding ( error ) import Language.Haskell.LSP.Messages +import Language.Haskell.LSP.Test.Exceptions import qualified Data.HashMap.Strict as HM getAllMessages :: Handle -> IO [B.ByteString] @@ -49,7 +50,7 @@ getHeaders h = do let (name, val) = span (/= ':') l if null val then return [] else ((name, drop 2 val) :) <$> getHeaders h where eofHandler e - | isEOFError e = error "Language Server unexpectedly terminated" + | isEOFError e = throw UnexpectedServerTermination | otherwise = throw e type RequestMap = HM.HashMap LspId ClientMethod @@ -71,6 +72,7 @@ getRequestMap = foldl helper HM.empty (ReqCompletionItemResolve val) -> insert val acc (ReqSignatureHelp val) -> insert val acc (ReqDefinition val) -> insert val acc + (ReqTypeDefinition val) -> insert val acc (ReqFindReferences val) -> insert val acc (ReqDocumentHighlights val) -> insert val acc (ReqDocumentSymbols val) -> insert val acc @@ -98,6 +100,7 @@ matchResponseMsgType req = case req of CompletionItemResolve -> RspCompletionItemResolve . decoded TextDocumentSignatureHelp -> RspSignatureHelp . decoded TextDocumentDefinition -> RspDefinition . decoded + TextDocumentTypeDefinition -> RspTypeDefinition . decoded TextDocumentReferences -> RspFindReferences . decoded TextDocumentDocumentHighlight -> RspDocumentHighlights . decoded TextDocumentDocumentSymbol -> RspDocumentSymbols . decoded @@ -128,6 +131,10 @@ decodeFromServerMsg reqMap bytes = WindowShowMessage -> NotShowMessage $ fromJust $ decode bytes WindowLogMessage -> NotLogMessage $ fromJust $ decode bytes CancelRequestServer -> NotCancelRequestFromServer $ fromJust $ decode bytes + WindowProgressStart -> NotProgressStart $ fromJust $ decode bytes + WindowProgressReport -> NotProgressReport $ fromJust $ decode bytes + WindowProgressDone -> NotProgressDone $ fromJust $ decode bytes + WindowProgressCancel -> NotProgressCancel $ fromJust $ decode bytes TelemetryEvent -> NotTelemetry $ fromJust $ decode bytes WindowShowMessageRequest -> ReqShowMessage $ fromJust $ decode bytes ClientRegisterCapability -> ReqRegisterCapability $ fromJust $ decode bytes