1 {-# LANGUAGE RankNTypes #-}
2 module Language.Haskell.LSP.Test.Messages where
5 import Language.Haskell.LSP.Messages
6 import Language.Haskell.LSP.Types
8 isServerResponse :: FromServerMessage -> Bool
9 isServerResponse (RspInitialize _) = True
10 isServerResponse (RspShutdown _) = True
11 isServerResponse (RspHover _) = True
12 isServerResponse (RspCompletion _) = True
13 isServerResponse (RspCompletionItemResolve _) = True
14 isServerResponse (RspSignatureHelp _) = True
15 isServerResponse (RspDefinition _) = True
16 isServerResponse (RspTypeDefinition _) = True
17 isServerResponse (RspFindReferences _) = True
18 isServerResponse (RspDocumentHighlights _) = True
19 isServerResponse (RspDocumentSymbols _) = True
20 isServerResponse (RspWorkspaceSymbols _) = True
21 isServerResponse (RspCodeAction _) = True
22 isServerResponse (RspCodeLens _) = True
23 isServerResponse (RspCodeLensResolve _) = True
24 isServerResponse (RspDocumentFormatting _) = True
25 isServerResponse (RspDocumentRangeFormatting _) = True
26 isServerResponse (RspDocumentOnTypeFormatting _) = True
27 isServerResponse (RspRename _) = True
28 isServerResponse (RspExecuteCommand _) = True
29 isServerResponse (RspError _) = True
30 isServerResponse (RspDocumentLink _) = True
31 isServerResponse (RspDocumentLinkResolve _) = True
32 isServerResponse (RspWillSaveWaitUntil _) = True
33 isServerResponse _ = False
35 isServerRequest :: FromServerMessage -> Bool
36 isServerRequest (ReqRegisterCapability _) = True
37 isServerRequest (ReqApplyWorkspaceEdit _) = True
38 isServerRequest (ReqShowMessage _) = True
39 isServerRequest (ReqUnregisterCapability _) = True
40 isServerRequest _ = False
42 isServerNotification :: FromServerMessage -> Bool
43 isServerNotification (NotPublishDiagnostics _) = True
44 isServerNotification (NotLogMessage _) = True
45 isServerNotification (NotShowMessage _) = True
46 isServerNotification (NotTelemetry _) = True
47 isServerNotification (NotCancelRequestFromServer _) = True
48 isServerNotification _ = False
52 (forall b c. RequestMessage ServerMethod b c -> a)
53 -> (forall d. ResponseMessage d -> a)
54 -> (forall e. NotificationMessage ServerMethod e -> a)
57 handleServerMessage request response notification msg = case msg of
58 (ReqRegisterCapability m) -> request m
59 (ReqApplyWorkspaceEdit m) -> request m
60 (ReqShowMessage m) -> request m
61 (ReqUnregisterCapability m) -> request m
62 (ReqCustomServer m) -> request m
63 (RspInitialize m) -> response m
64 (RspShutdown m) -> response m
65 (RspHover m) -> response m
66 (RspCompletion m) -> response m
67 (RspCompletionItemResolve m) -> response m
68 (RspSignatureHelp m) -> response m
69 (RspDefinition m) -> response m
70 (RspFindReferences m) -> response m
71 (RspDocumentHighlights m) -> response m
72 (RspDocumentSymbols m) -> response m
73 (RspWorkspaceSymbols m) -> response m
74 (RspCodeAction m) -> response m
75 (RspCodeLens m) -> response m
76 (RspCodeLensResolve m) -> response m
77 (RspDocumentFormatting m) -> response m
78 (RspDocumentRangeFormatting m) -> response m
79 (RspDocumentOnTypeFormatting m) -> response m
80 (RspRename m) -> response m
81 (RspExecuteCommand m) -> response m
82 (RspError m) -> response m
83 (RspDocumentLink m) -> response m
84 (RspDocumentLinkResolve m) -> response m
85 (RspWillSaveWaitUntil m) -> response m
86 (RspTypeDefinition m) -> response m
87 (RspImplementation m) -> response m
88 (RspDocumentColor m) -> response m
89 (RspColorPresentation m) -> response m
90 (RspFoldingRange m) -> response m
91 (RspCustomServer m) -> response m
92 (NotPublishDiagnostics m) -> notification m
93 (NotLogMessage m) -> notification m
94 (NotShowMessage m) -> notification m
95 (NotProgressStart m) -> notification m
96 (NotProgressReport m) -> notification m
97 (NotProgressDone m) -> notification m
98 (NotTelemetry m) -> notification m
99 (NotCancelRequestFromServer m) -> notification m
100 (NotCustomServer m) -> notification m
104 (forall b c . (ToJSON b, ToJSON c) => RequestMessage ClientMethod b c -> a)
105 -> (forall d . ToJSON d => ResponseMessage d -> a)
106 -> (forall e . ToJSON e => NotificationMessage ClientMethod e -> a)
109 handleClientMessage request response notification msg = case msg of
110 (ReqInitialize m) -> request m
111 (ReqShutdown m) -> request m
112 (ReqHover m) -> request m
113 (ReqCompletion m) -> request m
114 (ReqCompletionItemResolve m) -> request m
115 (ReqSignatureHelp m) -> request m
116 (ReqDefinition m) -> request m
117 (ReqFindReferences m) -> request m
118 (ReqDocumentHighlights m) -> request m
119 (ReqDocumentSymbols m) -> request m
120 (ReqWorkspaceSymbols m) -> request m
121 (ReqCodeAction m) -> request m
122 (ReqCodeLens m) -> request m
123 (ReqCodeLensResolve m) -> request m
124 (ReqDocumentFormatting m) -> request m
125 (ReqDocumentRangeFormatting m) -> request m
126 (ReqDocumentOnTypeFormatting m) -> request m
127 (ReqRename m) -> request m
128 (ReqExecuteCommand m) -> request m
129 (ReqDocumentLink m) -> request m
130 (ReqDocumentLinkResolve m) -> request m
131 (ReqWillSaveWaitUntil m) -> request m
132 (ReqImplementation m) -> request m
133 (ReqTypeDefinition m) -> request m
134 (ReqDocumentColor m) -> request m
135 (ReqColorPresentation m) -> request m
136 (ReqFoldingRange m) -> request m
137 (RspApplyWorkspaceEdit m) -> response m
138 (RspFromClient m) -> response m
139 (NotInitialized m) -> notification m
140 (NotExit m) -> notification m
141 (NotCancelRequestFromClient m) -> notification m
142 (NotDidChangeConfiguration m) -> notification m
143 (NotDidOpenTextDocument m) -> notification m
144 (NotDidChangeTextDocument m) -> notification m
145 (NotDidCloseTextDocument m) -> notification m
146 (NotWillSaveTextDocument m) -> notification m
147 (NotDidSaveTextDocument m) -> notification m
148 (NotDidChangeWatchedFiles m) -> notification m
149 (NotDidChangeWorkspaceFolders m) -> notification m
150 (NotProgressCancel m) -> notification m
151 (ReqCustomClient m) -> request m
152 (NotCustomClient m) -> notification m