@@ -6,6 +6,8 @@ module Language.LSP.Types.ClientCapabilities where
6
6
import Data.Aeson.TH
7
7
import qualified Data.Aeson as A
8
8
import Data.Default
9
+ import Data.Text (Text )
10
+
9
11
import Language.LSP.Types.CallHierarchy
10
12
import Language.LSP.Types.CodeAction
11
13
import Language.LSP.Types.CodeLens
@@ -34,6 +36,8 @@ import Language.LSP.Types.Utils
34
36
import Language.LSP.Types.WatchedFiles
35
37
import Language.LSP.Types.WorkspaceEdit
36
38
import Language.LSP.Types.WorkspaceSymbol
39
+ import Language.LSP.Types.MarkupContent (MarkdownClientCapabilities )
40
+ import Language.LSP.Types.Common (List )
37
41
38
42
39
43
data WorkspaceClientCapabilities =
@@ -170,30 +174,122 @@ instance Default TextDocumentClientCapabilities where
170
174
171
175
-- ---------------------------------------------------------------------
172
176
177
+ -- | Capabilities specific to the `MessageActionItem` type.
178
+ data MessageActionItemClientCapabilities =
179
+ MessageActionItemClientCapabilities
180
+ {
181
+ -- | Whether the client supports additional attributes which
182
+ -- are preserved and sent back to the server in the
183
+ -- request's response.
184
+ _additionalPropertiesSupport :: Maybe Bool
185
+ } deriving (Show , Read , Eq )
186
+
187
+ deriveJSON lspOptions ''MessageActionItemClientCapabilities
188
+
189
+ -- | Show message request client capabilities
190
+ data ShowMessageRequestClientCapabilities =
191
+ ShowMessageRequestClientCapabilities
192
+ { -- | Capabilities specific to the `MessageActionItem` type.
193
+ _messageActionItem :: Maybe MessageActionItemClientCapabilities
194
+ } deriving (Show , Read , Eq )
195
+
196
+ deriveJSON lspOptions ''ShowMessageRequestClientCapabilities
197
+
198
+ -- | Client capabilities for the show document request.
199
+ --
200
+ -- @since 3.16.0
201
+ data ShowDocumentClientCapabilities =
202
+ ShowDocumentClientCapabilities
203
+ { -- | The client has support for the show document request
204
+ _support :: Bool
205
+ } deriving (Show , Read , Eq )
206
+
207
+ deriveJSON lspOptions ''ShowDocumentClientCapabilities
208
+
173
209
-- | Window specific client capabilities.
174
210
data WindowClientCapabilities =
175
211
WindowClientCapabilities
176
212
{ -- | Whether client supports handling progress notifications.
213
+ --
214
+ -- @since 3.15.0
177
215
_workDoneProgress :: Maybe Bool
216
+ -- | Capabilities specific to the showMessage request
217
+ --
218
+ -- @since 3.16.0
219
+ , _showMessage :: Maybe ShowMessageRequestClientCapabilities
220
+ -- | Capabilities specific to the showDocument request
221
+ --
222
+ -- @since 3.16.0
223
+ , _showDocument :: Maybe ShowDocumentClientCapabilities
178
224
} deriving (Show , Read , Eq )
179
225
180
226
deriveJSON lspOptions ''WindowClientCapabilities
181
227
182
228
instance Default WindowClientCapabilities where
183
- def = WindowClientCapabilities def
229
+ def = WindowClientCapabilities def def def
230
+
231
+ -- ---------------------------------------------------------------------
232
+
233
+ -- | Client capability that signals how the client
234
+ -- handles stale requests (e.g. a request
235
+ -- for which the client will not process the response
236
+ -- anymore since the information is outdated).
237
+ -- @since 3.17.0
238
+ data StaleRequestClientCapabilities =
239
+ StaleRequestClientCapabilities
240
+ { _cancel :: Bool
241
+ , _retryOnContentModified :: List Text
242
+ } deriving (Show , Read , Eq )
243
+
244
+ deriveJSON lspOptions ''StaleRequestClientCapabilities
245
+
246
+ -- | Client capabilities specific to the used markdown parser.
247
+ -- @since 3.16.0
248
+ data RegularExpressionsClientCapabilities =
249
+ RegularExpressionsClientCapabilities
250
+ { _engine :: Text
251
+ , _version :: Maybe Text
252
+ } deriving (Show , Read , Eq )
253
+
254
+ deriveJSON lspOptions ''RegularExpressionsClientCapabilities
255
+
256
+ -- | General client capabilities.
257
+ -- @since 3.16.0
258
+ data GeneralClientCapabilities =
259
+ GeneralClientCapabilities
260
+ {
261
+ _staleRequestSupport :: Maybe StaleRequestClientCapabilities
262
+ -- | Client capabilities specific to regular expressions.
263
+ -- @since 3.16.0
264
+ , _regularExpressions :: Maybe RegularExpressionsClientCapabilities
265
+ -- | Client capabilities specific to the client's markdown parser.
266
+ -- @since 3.16.0
267
+ , _markdown :: Maybe MarkdownClientCapabilities
268
+ } deriving (Show , Read , Eq )
269
+
270
+ deriveJSON lspOptions ''GeneralClientCapabilities
271
+
272
+ instance Default GeneralClientCapabilities where
273
+ def = GeneralClientCapabilities def def def
274
+
275
+ -- ---------------------------------------------------------------------
184
276
185
277
data ClientCapabilities =
186
278
ClientCapabilities
187
- { _workspace :: Maybe WorkspaceClientCapabilities
279
+ { -- | Workspace specific client capabilities
280
+ _workspace :: Maybe WorkspaceClientCapabilities
281
+ -- | Text document specific client capabilities
188
282
, _textDocument :: Maybe TextDocumentClientCapabilities
189
- -- | Capabilities specific to `window/progress` requests. Experimental.
190
- --
191
- -- @since 0.10.0.0
283
+ -- | Window specific client capabilities.
192
284
, _window :: Maybe WindowClientCapabilities
285
+ -- | General client capabilities.
286
+ -- @since 3.16.0
287
+ , _general :: Maybe GeneralClientCapabilities
288
+ -- | Experimental client capabilities.
193
289
, _experimental :: Maybe A. Object
194
290
} deriving (Show , Read , Eq )
195
291
196
292
deriveJSON lspOptions ''ClientCapabilities
197
293
198
294
instance Default ClientCapabilities where
199
- def = ClientCapabilities def def def def
295
+ def = ClientCapabilities def def def def def
0 commit comments