-listenServer
- :: [FromServerMessage]
- -> Handle
- -> RequestMap
- -> (MVar LSP.LspIdRsp, MVar LSP.LspId)
- -> Session ()
-listenServer [] _ _ _ = passSession
-listenServer expectedMsgs h reqMap semas@(reqSema, rspSema) = do
- msgBytes <- lift $ getNextMessage h
-
- let actualMsg = decodeFromServerMsg reqMap msgBytes
-
- lift $ print actualMsg
-
- newExpectedMsgs <- case actualMsg of
- ReqRegisterCapability m -> request actualMsg m
- ReqApplyWorkspaceEdit m -> request actualMsg m
- ReqShowMessage m -> request actualMsg m
- ReqUnregisterCapability m -> request actualMsg m
- RspInitialize m -> response actualMsg m
- RspShutdown m -> response actualMsg m
- RspHover m -> response actualMsg m
- RspCompletion m -> response actualMsg m
- RspCompletionItemResolve m -> response actualMsg m
- RspSignatureHelp m -> response actualMsg m
- RspDefinition m -> response actualMsg m
- RspFindReferences m -> response actualMsg m
- RspDocumentHighlights m -> response actualMsg m
- RspDocumentSymbols m -> response actualMsg m
- RspWorkspaceSymbols m -> response actualMsg m
- RspCodeAction m -> response actualMsg m
- RspCodeLens m -> response actualMsg m
- RspCodeLensResolve m -> response actualMsg m
- RspDocumentFormatting m -> response actualMsg m
- RspDocumentRangeFormatting m -> response actualMsg m
- RspDocumentOnTypeFormatting m -> response actualMsg m
- RspRename m -> response actualMsg m
- RspExecuteCommand m -> response actualMsg m
- RspError m -> response actualMsg m
- RspDocumentLink m -> response actualMsg m
- RspDocumentLinkResolve m -> response actualMsg m
- RspWillSaveWaitUntil m -> response actualMsg m
- NotPublishDiagnostics m -> notification actualMsg m
- NotLogMessage m -> notification actualMsg m
- NotShowMessage m -> notification actualMsg m
- NotTelemetry m -> notification actualMsg m
- NotCancelRequestFromServer m -> notification actualMsg m
-
- listenServer newExpectedMsgs h reqMap semas
+listenServer :: Handle -> RequestMap -> (MVar LSP.LspIdRsp, MVar LSP.LspId) -> IO ()
+listenServer h reqMap semas@(reqSema, rspSema) = do
+ msgBytes <- getNextMessage h
+
+ let msg = decodeFromServerMsg reqMap msgBytes
+
+ print msg
+
+ case msg of
+ ReqRegisterCapability m -> request m
+ ReqApplyWorkspaceEdit m -> request m
+ ReqShowMessage m -> request m
+ ReqUnregisterCapability m -> request m
+ RspInitialize m -> response m
+ RspShutdown m -> response m
+ RspHover m -> response m
+ RspCompletion m -> response m
+ RspCompletionItemResolve m -> response m
+ RspSignatureHelp m -> response m
+ RspDefinition m -> response m
+ RspFindReferences m -> response m
+ RspDocumentHighlights m -> response m
+ RspDocumentSymbols m -> response m
+ RspWorkspaceSymbols m -> response m
+ RspCodeAction m -> response m
+ RspCodeLens m -> response m
+ RspCodeLensResolve m -> response m
+ RspDocumentFormatting m -> response m
+ RspDocumentRangeFormatting m -> response m
+ RspDocumentOnTypeFormatting m -> response m
+ RspRename m -> response m
+ RspExecuteCommand m -> response m
+ RspError m -> response m
+ RspDocumentLink m -> response m
+ RspDocumentLinkResolve m -> response m
+ RspWillSaveWaitUntil m -> response m
+ NotPublishDiagnostics m -> notification m
+ NotLogMessage m -> notification m
+ NotShowMessage m -> notification m
+ NotTelemetry m -> notification m
+ NotCancelRequestFromServer m -> notification m
+
+ listenServer h reqMap semas
+