Skip to content

Commit 17851ae

Browse files
committed
Fix up registration options and capabilities
1 parent 3c4448e commit 17851ae

13 files changed

+67
-28
lines changed

src/Protocol/Client/Capabilities/ITextDocumentClientCapabilities.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -159,20 +159,20 @@ public interface ITextDocumentClientCapabilities : ICapabilitiesBase
159159
///
160160
/// @since 3.17.0
161161
/// </summary>
162-
Supports<InlineValueWorkspaceClientCapabilities?> InlineValue { get; set; }
162+
Supports<InlineValueClientCapabilities?> InlineValue { get; set; }
163163

164164
/// <summary>
165165
/// Capability specific to the `textDocument/inlayHint` request.
166166
///
167167
/// @since 3.17.0
168168
/// </summary>
169-
Supports<InlayHintWorkspaceClientCapabilities?> InlayHint { get; set; }
169+
Supports<InlayHintClientCapabilities?> InlayHint { get; set; }
170170

171171
/// <summary>
172172
/// Capability specific to the diagnostic pull model.
173173
///
174174
/// @since 3.17.0
175175
/// </summary>
176-
Supports<DiagnosticWorkspaceClientCapabilities?> Diagnostic { get; set; }
176+
Supports<DiagnosticClientCapabilities?> Diagnostic { get; set; }
177177
}
178178
}

src/Protocol/Client/Capabilities/TextDocumentClientCapabilities.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -159,20 +159,20 @@ public class TextDocumentClientCapabilities : CapabilitiesBase, ITextDocumentCli
159159
///
160160
/// @since 3.17.0
161161
/// </summary>
162-
public Supports<InlineValueWorkspaceClientCapabilities?> InlineValue { get; set; }
162+
public Supports<InlineValueClientCapabilities?> InlineValue { get; set; }
163163

164164
/// <summary>
165165
/// Capability specific to the `textDocument/inlayHint` request.
166166
///
167167
/// @since 3.17.0
168168
/// </summary>
169-
public Supports<InlayHintWorkspaceClientCapabilities?> InlayHint { get; set; }
169+
public Supports<InlayHintClientCapabilities?> InlayHint { get; set; }
170170

171171
/// <summary>
172172
/// Capability specific to the diagnostic pull model.
173173
///
174174
/// @since 3.17.0
175175
/// </summary>
176-
public Supports<DiagnosticWorkspaceClientCapabilities?> Diagnostic { get; set; }
176+
public Supports<DiagnosticClientCapabilities?> Diagnostic { get; set; }
177177
}
178178
}

src/Protocol/Client/Capabilities/WorkspaceEditCapability.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
namespace OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities
55
{
6-
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(WorkspaceClientCapabilities.WorkspaceEdit))]
6+
[CapabilityKey(nameof(ClientCapabilities.Workspace), nameof(WorkspaceClientCapabilities.WorkspaceEdit))]
77
public class WorkspaceEditCapability : ICapability
88
{
99
/// <summary>

src/Protocol/Features/Document/DiagnosticsFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ internal WorkspaceDiagnosticReportPartialResult(WorkspaceDiagnosticReport partia
467467

468468
[GenerateRegistrationOptions(nameof(ServerCapabilities.DiagnosticProvider))]
469469
[RegistrationName(TextDocumentNames.Diagnostics)]
470-
public partial class DiagnosticsRegistrationOptions : ITextDocumentRegistrationOptions, IWorkDoneProgressOptions
470+
public partial class DiagnosticsRegistrationOptions : ITextDocumentRegistrationOptions, IWorkDoneProgressOptions, IStaticRegistrationOptions
471471
{
472472
/// <summary>
473473
/// An optional identifier under which the diagnostics are

src/Protocol/Features/Document/InlayHintFeature.cs

+35-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System.Collections.ObjectModel;
1+
using System.Collections.ObjectModel;
22
using System.Diagnostics;
33
using MediatR;
44
using Newtonsoft.Json;
@@ -12,6 +12,7 @@
1212
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
1313
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization;
1414
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization.Converters;
15+
using OmniSharp.Extensions.LanguageServer.Protocol.Server;
1516
using OmniSharp.Extensions.LanguageServer.Protocol.Server.Capabilities;
1617

1718
// ReSharper disable once CheckNamespace
@@ -26,7 +27,7 @@ namespace Models
2627
GenerateHandlerMethods,
2728
GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))
2829
]
29-
[RegistrationOptions(typeof(InlayHintRegistrationOptions)), Capability(typeof(InlayHintWorkspaceClientCapabilities))]
30+
[RegistrationOptions(typeof(InlayHintRegistrationOptions)), Capability(typeof(InlayHintClientCapabilities))]
3031
[Resolver(typeof(InlayHint))]
3132
public partial record InlayHintParams : ITextDocumentIdentifierParams, IWorkDoneProgressParams,
3233
IRequest<InlayHintContainer?>
@@ -55,7 +56,7 @@ public partial record InlayHintParams : ITextDocumentIdentifierParams, IWorkDone
5556
[GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))]
5657
[GenerateTypedData]
5758
[GenerateContainer]
58-
[Capability(typeof(InlayHintWorkspaceClientCapabilities))]
59+
[Capability(typeof(InlayHintClientCapabilities))]
5960
public partial record InlayHint : ICanBeResolved, IRequest<InlayHint>, IDoesNotParticipateInRegistration
6061
{
6162
/// <summary>
@@ -265,10 +266,18 @@ public enum InlayHintKind
265266
Parameter = 2
266267
}
267268

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+
268277
[GenerateRegistrationOptions(nameof(ServerCapabilities.InlayHintProvider))]
269278
[RegistrationOptionsConverter(typeof(InlayHintRegistrationOptionsConverter))]
270279
[RegistrationName(TextDocumentNames.InlayHint)]
271-
public partial class InlayHintRegistrationOptions : ITextDocumentRegistrationOptions, IWorkDoneProgressOptions
280+
public partial class InlayHintRegistrationOptions : ITextDocumentRegistrationOptions, IWorkDoneProgressOptions, IStaticRegistrationOptions
272281
{
273282
/// <summary>
274283
/// The server provides support to resolve additional
@@ -301,7 +310,7 @@ public override StaticOptions Convert(InlayHintRegistrationOptions source)
301310
namespace Client.Capabilities
302311
{
303312
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.InlayHint))]
304-
public partial class InlayHintWorkspaceClientCapabilities : DynamicCapability
313+
public partial class InlayHintClientCapabilities : DynamicCapability
305314
{
306315
/// <summary>
307316
/// Indicates which properties a client can resolve lazily on a inlay
@@ -322,6 +331,27 @@ public class InlayHintCapabilityResolveSupport
322331
/// </summary>
323332
public Container<string> Properties { get; set; }
324333
}
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+
}
325355
}
326356

327357
namespace Document

src/Protocol/Features/Document/InlineValueFeature.cs

+10-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System.Diagnostics;
1+
using System.Diagnostics;
22
using MediatR;
33
using Newtonsoft.Json;
44
using Newtonsoft.Json.Linq;
@@ -25,7 +25,7 @@ namespace Models
2525
GenerateHandlerMethods,
2626
GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))
2727
]
28-
[RegistrationOptions(typeof(InlineValueRegistrationOptions)), Capability(typeof(InlineValueWorkspaceClientCapabilities))]
28+
[RegistrationOptions(typeof(InlineValueRegistrationOptions)), Capability(typeof(InlineValueClientCapabilities))]
2929
public partial record InlineValueParams : ITextDocumentIdentifierParams, IWorkDoneProgressParams,
3030
IRequest<Container<InlineValueBase>?>
3131
{
@@ -69,7 +69,7 @@ public partial record InlineValueContext
6969
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Workspace")]
7070
[GenerateHandlerMethods]
7171
[GenerateRequestMethods(typeof(IWorkspaceLanguageServer), typeof(ILanguageServer))]
72-
[Capability(typeof(CodeLensWorkspaceClientCapabilities))]
72+
[Capability(typeof(InlineValueWorkspaceClientCapabilities))]
7373
public partial record InlineValueRefreshParams : IRequest;
7474

7575
[JsonConverter(typeof(Converter))]
@@ -179,7 +179,7 @@ public partial record InlineValueEvaluatableExpression : InlineValueBase
179179

180180
[GenerateRegistrationOptions(nameof(ServerCapabilities.InlineValueProvider))]
181181
[RegistrationName(TextDocumentNames.InlineValue)]
182-
public partial class InlineValueRegistrationOptions : ITextDocumentRegistrationOptions, IWorkDoneProgressOptions
182+
public partial class InlineValueRegistrationOptions : ITextDocumentRegistrationOptions, IWorkDoneProgressOptions, IStaticRegistrationOptions
183183
{
184184
}
185185
}
@@ -190,12 +190,17 @@ namespace Server.Capabilities
190190

191191
namespace Client.Capabilities
192192
{
193+
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.InlineValue))]
194+
public partial class InlineValueClientCapabilities : DynamicCapability
195+
{
196+
}
197+
193198
/// <summary>
194199
/// Client workspace capabilities specific to inline values.
195200
///
196201
/// @since 3.17.0
197202
/// </summary>
198-
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.InlineValue))]
203+
[CapabilityKey(nameof(ClientCapabilities.Workspace), nameof(WorkspaceClientCapabilities.InlineValue))]
199204
public partial class InlineValueWorkspaceClientCapabilities : ICapability
200205
{
201206
/// <summary>

src/Protocol/Features/Document/SemanticTokensFeature.cs

+8-5
Original file line numberDiff line numberDiff line change
@@ -790,14 +790,17 @@ public partial class SemanticTokensCapabilityRequestFull
790790
///
791791
/// @since 3.16.0.
792792
/// </summary>
793-
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(WorkspaceClientCapabilities.SemanticTokens))]
793+
[CapabilityKey(nameof(ClientCapabilities.Workspace), nameof(WorkspaceClientCapabilities.SemanticTokens))]
794794
public class SemanticTokensWorkspaceCapability : ICapability
795795
{
796796
/// <summary>
797-
/// Whether the client implementation supports a refresh request send from
798-
/// the server to the client. This is useful if a server detects a project
799-
/// wide configuration change which requires a re-calculation of all semantic
800-
/// tokens provided by the server issuing the request.
797+
/// Whether the client implementation supports a refresh request sent from
798+
/// the server to the client.
799+
///
800+
/// Note that this event is global and will force the client to refresh all
801+
/// semantic tokens currently shown. It should be used with absolute care
802+
/// and is useful for situation where a server for example detect a project
803+
/// wide change that requires such a calculation.
801804
/// </summary>
802805
[Optional]
803806
public bool RefreshSupport { get; set; }

src/Protocol/Features/Workspace/DidChangeConfigurationFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public partial record DidChangeConfigurationParams : IRequest
2626

2727
namespace Client.Capabilities
2828
{
29-
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(WorkspaceClientCapabilities.Configuration))]
29+
[CapabilityKey(nameof(ClientCapabilities.Workspace), nameof(WorkspaceClientCapabilities.Configuration))]
3030
public partial class DidChangeConfigurationCapability : DynamicCapability
3131
{
3232
}

src/Protocol/Features/Workspace/DidChangeWatchedFilesFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public partial class DidChangeWatchedFilesRegistrationOptions
3636

3737
namespace Client.Capabilities
3838
{
39-
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(WorkspaceClientCapabilities.DidChangeWatchedFiles))]
39+
[CapabilityKey(nameof(ClientCapabilities.Workspace), nameof(WorkspaceClientCapabilities.DidChangeWatchedFiles))]
4040
public partial class DidChangeWatchedFilesCapability : DynamicCapability
4141
{
4242
/// <summary>

src/Protocol/Features/Workspace/ExecuteCommandFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public override StaticOptions Convert(ExecuteCommandRegistrationOptions source)
107107

108108
namespace Client.Capabilities
109109
{
110-
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(WorkspaceClientCapabilities.ExecuteCommand))]
110+
[CapabilityKey(nameof(ClientCapabilities.Workspace), nameof(WorkspaceClientCapabilities.ExecuteCommand))]
111111
public class ExecuteCommandCapability : DynamicCapability
112112
{
113113
}

src/Protocol/Features/Workspace/WorkspaceSymbolsFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ public override StaticOptions Convert(WorkspaceSymbolRegistrationOptions source)
187187

188188
namespace Client.Capabilities
189189
{
190-
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(WorkspaceClientCapabilities.Symbol))]
190+
[CapabilityKey(nameof(ClientCapabilities.Workspace), nameof(WorkspaceClientCapabilities.Symbol))]
191191
public partial class WorkspaceSymbolCapability : DynamicCapability //
192192
{
193193
/// <summary>

src/Protocol/WorkspaceNames.cs

+1
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,6 @@ public static class WorkspaceNames
2222
public const string InlineValueRefresh = "workspace/inlineValue/refresh";
2323
public const string DiagnosticRefresh = "workspace/diagnostic/refresh";
2424
public const string Diagnostics = "workspace/diagnostic";
25+
public const string InlayHintRefresh = "workspace/inlayHint/refresh";
2526
}
2627
}

test/Generation.Tests/snapshots/LspFeatureTests.Supports_Params_Type_As_Source.00AssemblyCapabilityKeys.verified.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@
1313
using OmniSharp.Extensions.LanguageServer.Protocol.Workspace;
1414
using System.Diagnostics;
1515

16-
[assembly: AssemblyCapabilityKey(typeof(OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities.WorkspaceSymbolCapability), nameof(ClientCapabilities.TextDocument), nameof(WorkspaceClientCapabilities.Symbol))]
16+
[assembly: AssemblyCapabilityKey(typeof(OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities.WorkspaceSymbolCapability), nameof(ClientCapabilities.Workspace), nameof(WorkspaceClientCapabilities.Symbol))]

0 commit comments

Comments
 (0)