12
12
using OmniSharp . Extensions . LanguageServer . Protocol . Models ;
13
13
using OmniSharp . Extensions . LanguageServer . Protocol . Serialization ;
14
14
using OmniSharp . Extensions . LanguageServer . Protocol . Serialization . Converters ;
15
+ using OmniSharp . Extensions . LanguageServer . Protocol . Server ;
15
16
using OmniSharp . Extensions . LanguageServer . Protocol . Server . Capabilities ;
16
17
17
18
// ReSharper disable once CheckNamespace
@@ -26,7 +27,7 @@ namespace Models
26
27
GenerateHandlerMethods ,
27
28
GenerateRequestMethods ( typeof ( ITextDocumentLanguageClient ) , typeof ( ILanguageClient ) )
28
29
]
29
- [ RegistrationOptions ( typeof ( InlayHintRegistrationOptions ) ) , Capability ( typeof ( InlayHintWorkspaceClientCapabilities ) ) ]
30
+ [ RegistrationOptions ( typeof ( InlayHintRegistrationOptions ) ) , Capability ( typeof ( InlayHintClientCapabilities ) ) ]
30
31
[ Resolver ( typeof ( InlayHint ) ) ]
31
32
public partial record InlayHintParams : ITextDocumentIdentifierParams , IWorkDoneProgressParams ,
32
33
IRequest < InlayHintContainer ? >
@@ -55,7 +56,7 @@ public partial record InlayHintParams : ITextDocumentIdentifierParams, IWorkDone
55
56
[ GenerateRequestMethods ( typeof ( ITextDocumentLanguageClient ) , typeof ( ILanguageClient ) ) ]
56
57
[ GenerateTypedData ]
57
58
[ GenerateContainer ]
58
- [ Capability ( typeof ( InlayHintWorkspaceClientCapabilities ) ) ]
59
+ [ Capability ( typeof ( InlayHintClientCapabilities ) ) ]
59
60
public partial record InlayHint : ICanBeResolved , IRequest < InlayHint > , IDoesNotParticipateInRegistration
60
61
{
61
62
/// <summary>
@@ -231,7 +232,7 @@ public override StringOrInlayHintLabelParts ReadJson(
231
232
if ( reader . TokenType == JsonToken . StartArray )
232
233
{
233
234
var result = JArray . Load ( reader ) ;
234
- return new StringOrInlayHintLabelParts ( result . ToObject < Container < InlayHintLabelPart > > ( ) ) ;
235
+ return new StringOrInlayHintLabelParts ( result . ToObject < Container < InlayHintLabelPart > > ( serializer ) ) ;
235
236
}
236
237
237
238
if ( reader . TokenType == JsonToken . String )
@@ -265,10 +266,18 @@ public enum InlayHintKind
265
266
Parameter = 2
266
267
}
267
268
269
+ [ Parallel ]
270
+ [ Method ( WorkspaceNames . InlayHintRefresh , Direction . ServerToClient ) ]
271
+ [ GenerateHandler ( "OmniSharp.Extensions.LanguageServer.Protocol.Workspace" ) ]
272
+ [ GenerateHandlerMethods ]
273
+ [ GenerateRequestMethods ( typeof ( IWorkspaceLanguageServer ) , typeof ( ILanguageServer ) ) ]
274
+ [ Capability ( typeof ( InlayHintWorkspaceClientCapabilities ) ) ]
275
+ public partial record InlayHintRefreshParams : IRequest ;
276
+
268
277
[ GenerateRegistrationOptions ( nameof ( ServerCapabilities . InlayHintProvider ) ) ]
269
278
[ RegistrationOptionsConverter ( typeof ( InlayHintRegistrationOptionsConverter ) ) ]
270
279
[ RegistrationName ( TextDocumentNames . InlayHint ) ]
271
- public partial class InlayHintRegistrationOptions : ITextDocumentRegistrationOptions , IWorkDoneProgressOptions
280
+ public partial class InlayHintRegistrationOptions : ITextDocumentRegistrationOptions , IWorkDoneProgressOptions , IStaticRegistrationOptions
272
281
{
273
282
/// <summary>
274
283
/// The server provides support to resolve additional
@@ -301,7 +310,7 @@ public override StaticOptions Convert(InlayHintRegistrationOptions source)
301
310
namespace Client . Capabilities
302
311
{
303
312
[ CapabilityKey ( nameof ( ClientCapabilities . TextDocument ) , nameof ( TextDocumentClientCapabilities . InlayHint ) ) ]
304
- public partial class InlayHintWorkspaceClientCapabilities : DynamicCapability
313
+ public partial class InlayHintClientCapabilities : DynamicCapability
305
314
{
306
315
/// <summary>
307
316
/// Indicates which properties a client can resolve lazily on a inlay
@@ -322,6 +331,27 @@ public class InlayHintCapabilityResolveSupport
322
331
/// </summary>
323
332
public Container < string > Properties { get ; set ; }
324
333
}
334
+
335
+ /// <summary>
336
+ /// Client workspace capabilities specific to inlay hints.
337
+ ///
338
+ /// @since 3.17.0.
339
+ /// </summary>
340
+ [ CapabilityKey ( nameof ( ClientCapabilities . Workspace ) , nameof ( WorkspaceClientCapabilities . SemanticTokens ) ) ]
341
+ public class InlayHintWorkspaceClientCapabilities : ICapability
342
+ {
343
+ /// <summary>
344
+ /// Whether the client implementation supports a refresh request sent from
345
+ /// the server to the client.
346
+ ///
347
+ /// Note that this event is global and will force the client to refresh all
348
+ /// inlay hints currently shown. It should be used with absolute care and
349
+ /// is useful for situation where a server for example detects a project wide
350
+ /// change that requires such a calculation.
351
+ /// </summary>
352
+ [ Optional ]
353
+ public bool RefreshSupport { get ; set ; }
354
+ }
325
355
}
326
356
327
357
namespace Document
0 commit comments