{-# LANGUAGE RankNTypes #-} module Language.Haskell.LSP.Test.Messages where import Data.Aeson import Language.Haskell.LSP.Messages import Language.Haskell.LSP.Types isServerResponse :: FromServerMessage -> Bool isServerResponse :: FromServerMessage -> Bool isServerResponse (RspInitialize InitializeResponse _) = Bool True isServerResponse (RspShutdown ShutdownResponse _) = Bool True isServerResponse (RspHover HoverResponse _) = Bool True isServerResponse (RspCompletion CompletionResponse _) = Bool True isServerResponse (RspCompletionItemResolve CompletionItemResolveResponse _) = Bool True isServerResponse (RspSignatureHelp SignatureHelpResponse _) = Bool True isServerResponse (RspDefinition DefinitionResponse _) = Bool True isServerResponse (RspTypeDefinition DefinitionResponse _) = Bool True isServerResponse (RspFindReferences ReferencesResponse _) = Bool True isServerResponse (RspDocumentHighlights DocumentHighlightsResponse _) = Bool True isServerResponse (RspDocumentSymbols DocumentSymbolsResponse _) = Bool True isServerResponse (RspWorkspaceSymbols WorkspaceSymbolsResponse _) = Bool True isServerResponse (RspCodeAction CodeActionResponse _) = Bool True isServerResponse (RspCodeLens CodeLensResponse _) = Bool True isServerResponse (RspCodeLensResolve CodeLensResolveResponse _) = Bool True isServerResponse (RspDocumentFormatting DocumentFormattingResponse _) = Bool True isServerResponse (RspDocumentRangeFormatting DocumentFormattingResponse _) = Bool True isServerResponse (RspDocumentOnTypeFormatting DocumentFormattingResponse _) = Bool True isServerResponse (RspRename RenameResponse _) = Bool True isServerResponse (RspExecuteCommand ExecuteCommandResponse _) = Bool True isServerResponse (RspError ErrorResponse _) = Bool True isServerResponse (RspDocumentLink DocumentLinkResponse _) = Bool True isServerResponse (RspDocumentLinkResolve DocumentLinkResolveResponse _) = Bool True isServerResponse (RspWillSaveWaitUntil DocumentFormattingResponse _) = Bool True isServerResponse FromServerMessage _ = Bool False isServerRequest :: FromServerMessage -> Bool isServerRequest :: FromServerMessage -> Bool isServerRequest (ReqRegisterCapability RegisterCapabilityRequest _) = Bool True isServerRequest (ReqApplyWorkspaceEdit ApplyWorkspaceEditRequest _) = Bool True isServerRequest (ReqShowMessage ShowMessageRequest _) = Bool True isServerRequest (ReqUnregisterCapability UnregisterCapabilityRequest _) = Bool True isServerRequest FromServerMessage _ = Bool False isServerNotification :: FromServerMessage -> Bool isServerNotification :: FromServerMessage -> Bool isServerNotification (NotPublishDiagnostics PublishDiagnosticsNotification _) = Bool True isServerNotification (NotLogMessage LogMessageNotification _) = Bool True isServerNotification (NotShowMessage ShowMessageNotification _) = Bool True isServerNotification (NotTelemetry TelemetryNotification _) = Bool True isServerNotification (NotCancelRequestFromServer CancelNotificationServer _) = Bool True isServerNotification FromServerMessage _ = Bool False handleServerMessage :: forall a. (forall b c. RequestMessage ServerMethod b c -> a) -> (forall d. ResponseMessage d -> a) -> (forall e. NotificationMessage ServerMethod e -> a) -> FromServerMessage -> a handleServerMessage :: (forall b c. RequestMessage ServerMethod b c -> a) -> (forall d. ResponseMessage d -> a) -> (forall e. NotificationMessage ServerMethod e -> a) -> FromServerMessage -> a handleServerMessage forall b c. RequestMessage ServerMethod b c -> a request forall d. ResponseMessage d -> a response forall e. NotificationMessage ServerMethod e -> a notification FromServerMessage msg = case FromServerMessage msg of (ReqRegisterCapability RegisterCapabilityRequest m) -> RegisterCapabilityRequest -> a forall b c. RequestMessage ServerMethod b c -> a request RegisterCapabilityRequest m (ReqApplyWorkspaceEdit ApplyWorkspaceEditRequest m) -> ApplyWorkspaceEditRequest -> a forall b c. RequestMessage ServerMethod b c -> a request ApplyWorkspaceEditRequest m (ReqShowMessage ShowMessageRequest m) -> ShowMessageRequest -> a forall b c. RequestMessage ServerMethod b c -> a request ShowMessageRequest m (ReqUnregisterCapability UnregisterCapabilityRequest m) -> UnregisterCapabilityRequest -> a forall b c. RequestMessage ServerMethod b c -> a request UnregisterCapabilityRequest m (ReqCustomServer CustomServerRequest m) -> CustomServerRequest -> a forall b c. RequestMessage ServerMethod b c -> a request CustomServerRequest m (ReqWorkDoneProgressCreate WorkDoneProgressCreateRequest m) -> WorkDoneProgressCreateRequest -> a forall b c. RequestMessage ServerMethod b c -> a request WorkDoneProgressCreateRequest m (RspInitialize InitializeResponse m) -> InitializeResponse -> a forall d. ResponseMessage d -> a response InitializeResponse m (RspShutdown ShutdownResponse m) -> ShutdownResponse -> a forall d. ResponseMessage d -> a response ShutdownResponse m (RspHover HoverResponse m) -> HoverResponse -> a forall d. ResponseMessage d -> a response HoverResponse m (RspCompletion CompletionResponse m) -> CompletionResponse -> a forall d. ResponseMessage d -> a response CompletionResponse m (RspCompletionItemResolve CompletionItemResolveResponse m) -> CompletionItemResolveResponse -> a forall d. ResponseMessage d -> a response CompletionItemResolveResponse m (RspSignatureHelp SignatureHelpResponse m) -> SignatureHelpResponse -> a forall d. ResponseMessage d -> a response SignatureHelpResponse m (RspDefinition DefinitionResponse m) -> DefinitionResponse -> a forall d. ResponseMessage d -> a response DefinitionResponse m (RspFindReferences ReferencesResponse m) -> ReferencesResponse -> a forall d. ResponseMessage d -> a response ReferencesResponse m (RspDocumentHighlights DocumentHighlightsResponse m) -> DocumentHighlightsResponse -> a forall d. ResponseMessage d -> a response DocumentHighlightsResponse m (RspDocumentSymbols DocumentSymbolsResponse m) -> DocumentSymbolsResponse -> a forall d. ResponseMessage d -> a response DocumentSymbolsResponse m (RspWorkspaceSymbols WorkspaceSymbolsResponse m) -> WorkspaceSymbolsResponse -> a forall d. ResponseMessage d -> a response WorkspaceSymbolsResponse m (RspCodeAction CodeActionResponse m) -> CodeActionResponse -> a forall d. ResponseMessage d -> a response CodeActionResponse m (RspCodeLens CodeLensResponse m) -> CodeLensResponse -> a forall d. ResponseMessage d -> a response CodeLensResponse m (RspCodeLensResolve CodeLensResolveResponse m) -> CodeLensResolveResponse -> a forall d. ResponseMessage d -> a response CodeLensResolveResponse m (RspDocumentFormatting DocumentFormattingResponse m) -> DocumentFormattingResponse -> a forall d. ResponseMessage d -> a response DocumentFormattingResponse m (RspDocumentRangeFormatting DocumentFormattingResponse m) -> DocumentFormattingResponse -> a forall d. ResponseMessage d -> a response DocumentFormattingResponse m (RspDocumentOnTypeFormatting DocumentFormattingResponse m) -> DocumentFormattingResponse -> a forall d. ResponseMessage d -> a response DocumentFormattingResponse m (RspRename RenameResponse m) -> RenameResponse -> a forall d. ResponseMessage d -> a response RenameResponse m (RspExecuteCommand ExecuteCommandResponse m) -> ExecuteCommandResponse -> a forall d. ResponseMessage d -> a response ExecuteCommandResponse m (RspError ErrorResponse m) -> ErrorResponse -> a forall d. ResponseMessage d -> a response ErrorResponse m (RspDocumentLink DocumentLinkResponse m) -> DocumentLinkResponse -> a forall d. ResponseMessage d -> a response DocumentLinkResponse m (RspDocumentLinkResolve DocumentLinkResolveResponse m) -> DocumentLinkResolveResponse -> a forall d. ResponseMessage d -> a response DocumentLinkResolveResponse m (RspWillSaveWaitUntil DocumentFormattingResponse m) -> DocumentFormattingResponse -> a forall d. ResponseMessage d -> a response DocumentFormattingResponse m (RspTypeDefinition DefinitionResponse m) -> DefinitionResponse -> a forall d. ResponseMessage d -> a response DefinitionResponse m (RspImplementation DefinitionResponse m) -> DefinitionResponse -> a forall d. ResponseMessage d -> a response DefinitionResponse m (RspDocumentColor DocumentColorResponse m) -> DocumentColorResponse -> a forall d. ResponseMessage d -> a response DocumentColorResponse m (RspColorPresentation ColorPresentationResponse m) -> ColorPresentationResponse -> a forall d. ResponseMessage d -> a response ColorPresentationResponse m (RspFoldingRange FoldingRangeResponse m) -> FoldingRangeResponse -> a forall d. ResponseMessage d -> a response FoldingRangeResponse m (RspCustomServer ExecuteCommandResponse m) -> ExecuteCommandResponse -> a forall d. ResponseMessage d -> a response ExecuteCommandResponse m (NotPublishDiagnostics PublishDiagnosticsNotification m) -> PublishDiagnosticsNotification -> a forall e. NotificationMessage ServerMethod e -> a notification PublishDiagnosticsNotification m (NotLogMessage LogMessageNotification m) -> LogMessageNotification -> a forall e. NotificationMessage ServerMethod e -> a notification LogMessageNotification m (NotShowMessage ShowMessageNotification m) -> ShowMessageNotification -> a forall e. NotificationMessage ServerMethod e -> a notification ShowMessageNotification m (NotWorkDoneProgressBegin WorkDoneProgressBeginNotification m) -> WorkDoneProgressBeginNotification -> a forall e. NotificationMessage ServerMethod e -> a notification WorkDoneProgressBeginNotification m (NotWorkDoneProgressReport WorkDoneProgressReportNotification m) -> WorkDoneProgressReportNotification -> a forall e. NotificationMessage ServerMethod e -> a notification WorkDoneProgressReportNotification m (NotWorkDoneProgressEnd WorkDoneProgressEndNotification m) -> WorkDoneProgressEndNotification -> a forall e. NotificationMessage ServerMethod e -> a notification WorkDoneProgressEndNotification m (NotTelemetry TelemetryNotification m) -> TelemetryNotification -> a forall e. NotificationMessage ServerMethod e -> a notification TelemetryNotification m (NotCancelRequestFromServer CancelNotificationServer m) -> CancelNotificationServer -> a forall e. NotificationMessage ServerMethod e -> a notification CancelNotificationServer m (NotCustomServer TelemetryNotification m) -> TelemetryNotification -> a forall e. NotificationMessage ServerMethod e -> a notification TelemetryNotification m handleClientMessage :: forall a. (forall b c . (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a) -> (forall d . ToJSON d => ResponseMessage d -> a) -> (forall e . ToJSON e => NotificationMessage ClientMethod e -> a) -> FromClientMessage -> a handleClientMessage :: (forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a) -> (forall d. ToJSON d => ResponseMessage d -> a) -> (forall e. ToJSON e => NotificationMessage ClientMethod e -> a) -> FromClientMessage -> a handleClientMessage forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request forall d. ToJSON d => ResponseMessage d -> a response forall e. ToJSON e => NotificationMessage ClientMethod e -> a notification FromClientMessage msg = case FromClientMessage msg of (ReqInitialize InitializeRequest m) -> InitializeRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request InitializeRequest m (ReqShutdown ShutdownRequest m) -> ShutdownRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request ShutdownRequest m (ReqHover HoverRequest m) -> HoverRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request HoverRequest m (ReqCompletion CompletionRequest m) -> CompletionRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request CompletionRequest m (ReqCompletionItemResolve CompletionItemResolveRequest m) -> CompletionItemResolveRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request CompletionItemResolveRequest m (ReqSignatureHelp SignatureHelpRequest m) -> SignatureHelpRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request SignatureHelpRequest m (ReqDefinition DefinitionRequest m) -> DefinitionRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request DefinitionRequest m (ReqFindReferences ReferencesRequest m) -> ReferencesRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request ReferencesRequest m (ReqDocumentHighlights DocumentHighlightRequest m) -> DocumentHighlightRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request DocumentHighlightRequest m (ReqDocumentSymbols DocumentSymbolRequest m) -> DocumentSymbolRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request DocumentSymbolRequest m (ReqWorkspaceSymbols WorkspaceSymbolRequest m) -> WorkspaceSymbolRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request WorkspaceSymbolRequest m (ReqCodeAction CodeActionRequest m) -> CodeActionRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request CodeActionRequest m (ReqCodeLens CodeLensRequest m) -> CodeLensRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request CodeLensRequest m (ReqCodeLensResolve CodeLensResolveRequest m) -> CodeLensResolveRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request CodeLensResolveRequest m (ReqDocumentFormatting DocumentFormattingRequest m) -> DocumentFormattingRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request DocumentFormattingRequest m (ReqDocumentRangeFormatting DocumentRangeFormattingRequest m) -> DocumentRangeFormattingRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request DocumentRangeFormattingRequest m (ReqDocumentOnTypeFormatting DocumentOnTypeFormattingRequest m) -> DocumentOnTypeFormattingRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request DocumentOnTypeFormattingRequest m (ReqPrepareRename PrepareRenameRequest m) -> PrepareRenameRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request PrepareRenameRequest m (ReqRename RenameRequest m) -> RenameRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request RenameRequest m (ReqExecuteCommand ExecuteCommandRequest m) -> ExecuteCommandRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request ExecuteCommandRequest m (ReqDocumentLink DocumentLinkRequest m) -> DocumentLinkRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request DocumentLinkRequest m (ReqDocumentLinkResolve DocumentLinkResolveRequest m) -> DocumentLinkResolveRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request DocumentLinkResolveRequest m (ReqWillSaveWaitUntil WillSaveWaitUntilTextDocumentRequest m) -> WillSaveWaitUntilTextDocumentRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request WillSaveWaitUntilTextDocumentRequest m (ReqImplementation DefinitionRequest m) -> DefinitionRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request DefinitionRequest m (ReqTypeDefinition DefinitionRequest m) -> DefinitionRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request DefinitionRequest m (ReqDocumentColor DocumentColorRequest m) -> DocumentColorRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request DocumentColorRequest m (ReqColorPresentation ColorPresentationRequest m) -> ColorPresentationRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request ColorPresentationRequest m (ReqFoldingRange FoldingRangeRequest m) -> FoldingRangeRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request FoldingRangeRequest m (RspApplyWorkspaceEdit ApplyWorkspaceEditResponse m) -> ApplyWorkspaceEditResponse -> a forall d. ToJSON d => ResponseMessage d -> a response ApplyWorkspaceEditResponse m (RspFromClient ExecuteCommandResponse m) -> ExecuteCommandResponse -> a forall d. ToJSON d => ResponseMessage d -> a response ExecuteCommandResponse m (NotInitialized InitializedNotification m) -> InitializedNotification -> a forall e. ToJSON e => NotificationMessage ClientMethod e -> a notification InitializedNotification m (NotExit ExitNotification m) -> ExitNotification -> a forall e. ToJSON e => NotificationMessage ClientMethod e -> a notification ExitNotification m (NotCancelRequestFromClient CancelNotification m) -> CancelNotification -> a forall e. ToJSON e => NotificationMessage ClientMethod e -> a notification CancelNotification m (NotDidChangeConfiguration DidChangeConfigurationNotification m) -> DidChangeConfigurationNotification -> a forall e. ToJSON e => NotificationMessage ClientMethod e -> a notification DidChangeConfigurationNotification m (NotDidOpenTextDocument DidOpenTextDocumentNotification m) -> DidOpenTextDocumentNotification -> a forall e. ToJSON e => NotificationMessage ClientMethod e -> a notification DidOpenTextDocumentNotification m (NotDidChangeTextDocument DidChangeTextDocumentNotification m) -> DidChangeTextDocumentNotification -> a forall e. ToJSON e => NotificationMessage ClientMethod e -> a notification DidChangeTextDocumentNotification m (NotDidCloseTextDocument DidCloseTextDocumentNotification m) -> DidCloseTextDocumentNotification -> a forall e. ToJSON e => NotificationMessage ClientMethod e -> a notification DidCloseTextDocumentNotification m (NotWillSaveTextDocument WillSaveTextDocumentNotification m) -> WillSaveTextDocumentNotification -> a forall e. ToJSON e => NotificationMessage ClientMethod e -> a notification WillSaveTextDocumentNotification m (NotDidSaveTextDocument DidSaveTextDocumentNotification m) -> DidSaveTextDocumentNotification -> a forall e. ToJSON e => NotificationMessage ClientMethod e -> a notification DidSaveTextDocumentNotification m (NotDidChangeWatchedFiles DidChangeWatchedFilesNotification m) -> DidChangeWatchedFilesNotification -> a forall e. ToJSON e => NotificationMessage ClientMethod e -> a notification DidChangeWatchedFilesNotification m (NotDidChangeWorkspaceFolders DidChangeWorkspaceFoldersNotification m) -> DidChangeWorkspaceFoldersNotification -> a forall e. ToJSON e => NotificationMessage ClientMethod e -> a notification DidChangeWorkspaceFoldersNotification m (NotWorkDoneProgressCancel WorkDoneProgressCancelNotification m) -> WorkDoneProgressCancelNotification -> a forall e. ToJSON e => NotificationMessage ClientMethod e -> a notification WorkDoneProgressCancelNotification m (ReqCustomClient CustomClientRequest m) -> CustomClientRequest -> a forall b c. (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a request CustomClientRequest m (NotCustomClient CustomClientNotification m) -> CustomClientNotification -> a forall e. ToJSON e => NotificationMessage ClientMethod e -> a notification CustomClientNotification m