Skip to content

Commit 12748c6

Browse files
Removed ConnectedCapability interface as it isn't needed any more (#465)
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
1 parent 754bc10 commit 12748c6

32 files changed

+131
-115
lines changed

src/Protocol/Client/Capabilities/ConnectedCapability.cs

-11
This file was deleted.

src/Protocol/Client/Capabilities/DynamicCapability.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-
public class DynamicCapability : IDynamicCapability
6+
public abstract class DynamicCapability : IDynamicCapability
77
{
88
/// <summary>
99
/// Whether completion supports dynamic registration.

src/Protocol/Features/Document/CodeActionFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ public readonly partial struct CodeActionKind
389389
namespace Client.Capabilities
390390
{
391391
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.CodeAction))]
392-
public partial class CodeActionCapability : DynamicCapability, ConnectedCapability<ICodeActionHandler>
392+
public partial class CodeActionCapability : DynamicCapability
393393
{
394394
/// <summary>
395395
/// The client support code action literals as a valid

src/Protocol/Features/Document/CodeLensFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ public partial record CodeLensRefreshParams : IRequest
125125
namespace Client.Capabilities
126126
{
127127
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.CodeLens))]
128-
public partial class CodeLensCapability : DynamicCapability, ConnectedCapability<ICodeLensHandler>
128+
public partial class CodeLensCapability : DynamicCapability
129129
{
130130
}
131131

src/Protocol/Features/Document/ColorFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public partial class DocumentColorRegistrationOptions : IWorkDoneProgressOptions
135135
namespace Client.Capabilities
136136
{
137137
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.ColorProvider))]
138-
public partial class ColorProviderCapability : DynamicCapability, ConnectedCapability<IDocumentColorHandler>, ConnectedCapability<IColorPresentationHandler>
138+
public partial class ColorProviderCapability : DynamicCapability
139139
{
140140
}
141141
}

src/Protocol/Features/Document/CompletionFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ public CompletionList(bool isIncomplete, params CompletionItem<T>[] items) : bas
424424
namespace Client.Capabilities
425425
{
426426
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.Completion))]
427-
public partial class CompletionCapability : DynamicCapability, ConnectedCapability<ICompletionHandler>
427+
public partial class CompletionCapability : DynamicCapability
428428
{
429429
/// <summary>
430430
/// The client supports the following `CompletionItem` specific

src/Protocol/Features/Document/DeclarationFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public partial class DeclarationRegistrationOptions : ITextDocumentRegistrationO
3131
namespace Client.Capabilities
3232
{
3333
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.Declaration))]
34-
public partial class DeclarationCapability : LinkSupportCapability, ConnectedCapability<IDeclarationHandler>
34+
public partial class DeclarationCapability : LinkSupportCapability
3535
{
3636
}
3737
}

src/Protocol/Features/Document/DefinitionFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public partial class DefinitionRegistrationOptions : ITextDocumentRegistrationOp
3333
namespace Client.Capabilities
3434
{
3535
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.Definition))]
36-
public partial class DefinitionCapability : LinkSupportCapability, ConnectedCapability<IDefinitionHandler>
36+
public partial class DefinitionCapability : LinkSupportCapability
3737
{
3838
}
3939
}

src/Protocol/Features/Document/DocumentFormattingFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public partial class DocumentFormattingRegistrationOptions : ITextDocumentRegist
4141
namespace Client.Capabilities
4242
{
4343
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.Formatting))]
44-
public partial class DocumentFormattingCapability : DynamicCapability, ConnectedCapability<IDocumentFormattingHandler>
44+
public partial class DocumentFormattingCapability : DynamicCapability
4545
{
4646
}
4747
}

src/Protocol/Features/Document/DocumentHighlightFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public partial class DocumentHighlightRegistrationOptions : ITextDocumentRegistr
7777
namespace Client.Capabilities
7878
{
7979
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.DocumentHighlight))]
80-
public partial class DocumentHighlightCapability : DynamicCapability, ConnectedCapability<IDocumentHighlightHandler>
80+
public partial class DocumentHighlightCapability : DynamicCapability
8181
{
8282
}
8383
}

src/Protocol/Features/Document/DocumentLinkFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public DocumentLinkRegistrationOptionsConverter(IHandlersManager handlersManager
116116
namespace Client.Capabilities
117117
{
118118
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.DocumentLink))]
119-
public partial class DocumentLinkCapability : DynamicCapability, ConnectedCapability<IDocumentLinkHandler>
119+
public partial class DocumentLinkCapability : DynamicCapability
120120
{
121121
/// <summary>
122122
/// Whether the client support the `tooltip` property on `DocumentLink`.

src/Protocol/Features/Document/DocumentOnTypeFormattingFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public partial class DocumentOnTypeFormattingRegistrationOptions : ITextDocument
6666
namespace Client.Capabilities
6767
{
6868
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.OnTypeFormatting))]
69-
public partial class DocumentOnTypeFormattingCapability : DynamicCapability, ConnectedCapability<IDocumentOnTypeFormattingHandler>
69+
public partial class DocumentOnTypeFormattingCapability : DynamicCapability
7070
{
7171
}
7272
}

src/Protocol/Features/Document/DocumentRangeFormattingFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public partial class DocumentRangeFormattingRegistrationOptions : ITextDocumentR
4848
namespace Client.Capabilities
4949
{
5050
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.RangeFormatting))]
51-
public partial class DocumentRangeFormattingCapability : DynamicCapability, ConnectedCapability<IDocumentRangeFormattingHandler>
51+
public partial class DocumentRangeFormattingCapability : DynamicCapability
5252
{
5353
}
5454
}

src/Protocol/Features/Document/DocumentSymbolFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ public partial class DocumentSymbolRegistrationOptions : ITextDocumentRegistrati
154154
namespace Client.Capabilities
155155
{
156156
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.DocumentSymbol))]
157-
public partial class DocumentSymbolCapability : DynamicCapability, ConnectedCapability<IDocumentSymbolHandler>
157+
public partial class DocumentSymbolCapability : DynamicCapability
158158
{
159159
/// <summary>
160160
/// Specific capabilities for the `SymbolKind` in the `textDocument/symbol` request.

src/Protocol/Features/Document/FoldingRangeFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public partial class FoldingRangeRegistrationOptions : ITextDocumentRegistration
119119
namespace Client.Capabilities
120120
{
121121
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.FoldingRange))]
122-
public partial class FoldingRangeCapability : DynamicCapability, ConnectedCapability<IFoldingRangeHandler>
122+
public partial class FoldingRangeCapability : DynamicCapability
123123
{
124124
/// <summary>
125125
/// The maximum number of folding ranges that the client prefers to receive per document. The value serves as a

src/Protocol/Features/Document/HoverFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public partial class HoverRegistrationOptions : ITextDocumentRegistrationOptions
5959
namespace Client.Capabilities
6060
{
6161
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.Hover))]
62-
public partial class HoverCapability : DynamicCapability, ConnectedCapability<IHoverHandler>
62+
public partial class HoverCapability : DynamicCapability
6363
{
6464
/// <summary>
6565
/// Client supports the follow content formats for the content property. The order describes the preferred format of the client.

src/Protocol/Features/Document/ImplementationFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public partial class ImplementationRegistrationOptions : ITextDocumentRegistrati
3030
namespace Client.Capabilities
3131
{
3232
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.Implementation))]
33-
public partial class ImplementationCapability : LinkSupportCapability, ConnectedCapability<IImplementationHandler>
33+
public partial class ImplementationCapability : LinkSupportCapability
3434
{
3535
}
3636
}

src/Protocol/Features/Document/LinkedEditingRangeFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ namespace Client.Capabilities
5656
{
5757
[Obsolete(Constants.Proposal)]
5858
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.LinkedEditingRange))]
59-
public partial class LinkedEditingRangeClientCapabilities : DynamicCapability, ConnectedCapability<ILinkedEditingRangeHandler> { }
59+
public partial class LinkedEditingRangeClientCapabilities : DynamicCapability { }
6060
}
6161

6262
namespace Document

src/Protocol/Features/Document/Proposals/CallHierarchyFeature.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -283,8 +283,7 @@ namespace Client.Capabilities
283283
/// </summary>
284284
[Obsolete(Constants.Proposal)]
285285
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.CallHierarchy))]
286-
public partial class CallHierarchyCapability : DynamicCapability, ConnectedCapability<ICallHierarchyPrepareHandler>,
287-
ConnectedCapability<ICallHierarchyIncomingHandler>, ConnectedCapability<ICallHierarchyOutgoingHandler>
286+
public partial class CallHierarchyCapability : DynamicCapability
288287
{
289288
}
290289
}

src/Protocol/Features/Document/Proposals/SemanticTokensFeature.cs

+1-3
Original file line numberDiff line numberDiff line change
@@ -627,9 +627,7 @@ namespace Client.Capabilities
627627
/// </summary>
628628
[Obsolete(Constants.Proposal)]
629629
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.SemanticTokens))]
630-
public partial class SemanticTokensCapability : DynamicCapability, ConnectedCapability<ISemanticTokensFullHandler>,
631-
ConnectedCapability<ISemanticTokensDeltaHandler>, ConnectedCapability<ISemanticTokensRangeHandler>,
632-
ConnectedCapability<ISemanticTokensRefreshHandler>
630+
public partial class SemanticTokensCapability : DynamicCapability
633631
{
634632
/// <summary>
635633
/// Which requests the client supports and might send to the server.

src/Protocol/Features/Document/ReferencesFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public partial class ReferenceRegistrationOptions : ITextDocumentRegistrationOpt
3939
namespace Client.Capabilities
4040
{
4141
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.References))]
42-
public partial class ReferenceCapability : DynamicCapability, ConnectedCapability<IReferencesHandler>
42+
public partial class ReferenceCapability : DynamicCapability
4343
{
4444
}
4545
}

src/Protocol/Features/Document/RenameFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ public partial class RenameRegistrationOptions : ITextDocumentRegistrationOption
154154
namespace Client.Capabilities
155155
{
156156
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.Rename))]
157-
public class RenameCapability : DynamicCapability, ConnectedCapability<IRenameHandler>
157+
public class RenameCapability : DynamicCapability
158158
{
159159
/// <summary>
160160
/// Client supports testing for validity of rename operations

src/Protocol/Features/Document/SelectionRangeFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public partial class SelectionRangeRegistrationOptions : ITextDocumentRegistrati
6161
namespace Client.Capabilities
6262
{
6363
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.SelectionRange))]
64-
public partial class SelectionRangeCapability : DynamicCapability, ConnectedCapability<ISelectionRangeHandler>
64+
public partial class SelectionRangeCapability : DynamicCapability
6565
{
6666
/// <summary>
6767
/// The maximum number of folding ranges that the client prefers to receive per document. The value serves as a

src/Protocol/Features/Document/SignatureHelpFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ public partial class SignatureHelpRegistrationOptions : ITextDocumentRegistratio
241241

242242
namespace Client.Capabilities
243243
{
244-
public partial class SignatureHelpCapability : DynamicCapability, ConnectedCapability<ISignatureHelpHandler>
244+
public partial class SignatureHelpCapability : DynamicCapability
245245
{
246246
/// <summary>
247247
/// The client supports the following `SignatureInformation`

src/Protocol/Features/Document/TextDocumentSyncFeature.cs

+2-7
Original file line numberDiff line numberDiff line change
@@ -336,13 +336,8 @@ public partial class TextDocumentWillSaveWaitUntilRegistrationOptions : ITextDoc
336336
namespace Client.Capabilities
337337
{
338338
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.Synchronization))]
339-
public class SynchronizationCapability : DynamicCapability,
340-
ConnectedCapability<IDidChangeTextDocumentHandler>,
341-
ConnectedCapability<IDidCloseTextDocumentHandler>,
342-
ConnectedCapability<IDidOpenTextDocumentHandler>,
343-
ConnectedCapability<IDidSaveTextDocumentHandler>,
344-
ConnectedCapability<IWillSaveTextDocumentHandler>,
345-
ConnectedCapability<IWillSaveWaitUntilTextDocumentHandler>
339+
public class SynchronizationCapability : DynamicCapability
340+
346341
{
347342
/// <summary>
348343
/// The client supports sending will save notifications.

src/Protocol/Features/Document/TypeDefinitionFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public partial class TypeDefinitionRegistrationOptions : ITextDocumentRegistrati
3131
namespace Client.Capabilities
3232
{
3333
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(TextDocumentClientCapabilities.TypeDefinition))]
34-
public partial class TypeDefinitionCapability : LinkSupportCapability, ConnectedCapability<ITypeDefinitionHandler>
34+
public partial class TypeDefinitionCapability : LinkSupportCapability
3535
{
3636
}
3737
}

src/Protocol/Features/Workspace/ExecuteCommandFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public override StaticOptions Convert(ExecuteCommandRegistrationOptions source)
8484
namespace Client.Capabilities
8585
{
8686
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(WorkspaceClientCapabilities.ExecuteCommand))]
87-
public class ExecuteCommandCapability : DynamicCapability, ConnectedCapability<IExecuteCommandHandler>
87+
public class ExecuteCommandCapability : DynamicCapability
8888
{
8989
}
9090
}

src/Protocol/Features/Workspace/WorkspaceSymbolsFeature.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public partial class WorkspaceSymbolRegistrationOptions : IWorkDoneProgressOptio
8080
namespace Client.Capabilities
8181
{
8282
[CapabilityKey(nameof(ClientCapabilities.TextDocument), nameof(WorkspaceClientCapabilities.Symbol))]
83-
public partial class WorkspaceSymbolCapability : DynamicCapability//, ConnectedCapability<IWorkspaceSymbolsHandler>
83+
public partial class WorkspaceSymbolCapability : DynamicCapability//
8484
{
8585
/// <summary>
8686
/// Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.

src/Server/ClientCapabilityProvider.cs

+7-9
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using OmniSharp.Extensions.LanguageServer.Protocol;
77
using OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities;
88
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
9+
using OmniSharp.Extensions.LanguageServer.Protocol.Shared;
910
using OmniSharp.Extensions.LanguageServer.Shared;
1011

1112
namespace OmniSharp.Extensions.LanguageServer.Server
@@ -15,28 +16,25 @@ internal class ClientCapabilityProvider
1516
private readonly IHandlerCollection _collection;
1617
private readonly bool _supportsProgress;
1718

18-
public ClientCapabilityProvider(IHandlerCollection collection, bool supportsProgress)
19+
public ClientCapabilityProvider(
20+
IHandlerCollection collection,
21+
bool supportsProgress)
1922
{
2023
_collection = collection;
2124
_supportsProgress = supportsProgress;
2225
}
2326

2427
public bool HasStaticHandler<T>(Supports<T> capability)
25-
where T : ConnectedCapability<IJsonRpcHandler>?, IDynamicCapability?
28+
where T : IDynamicCapability?
2629
{
2730
// Dynamic registration will cause us to double register things if we report our capabilities statically.
2831
// However if the client does not tell us it's capabilities we should just assume that they do not support
2932
// dynamic registrations but we should report any capabilities statically
3033
if (capability.IsSupported && capability.Value != null && capability.Value.DynamicRegistration) return false;
31-
32-
var handlerTypes = typeof(T).GetTypeInfo().ImplementedInterfaces
33-
.Where(x => x.GetTypeInfo().IsGenericType && x.GetTypeInfo().GetGenericTypeDefinition() == typeof(ConnectedCapability<>))
34-
.Select(x => x.GetTypeInfo().GetGenericArguments()[0].GetTypeInfo());
35-
36-
return handlerTypes.Any(_collection.ContainsHandler);
34+
return _collection.Any(z => z.HasCapability &&z.CapabilityType == typeof(T));
3735
}
3836

39-
public IOptionsGetter GetStaticOptions<T>(Supports<T> capability) where T : DynamicCapability?, ConnectedCapability<IJsonRpcHandler>?
37+
public IOptionsGetter GetStaticOptions<T>(Supports<T> capability) where T : DynamicCapability
4038
=> !HasStaticHandler(capability) ? Null : new OptionsGetter(_collection, _supportsProgress);
4139

4240
private static readonly IOptionsGetter Null = new NullOptionsGetter();

test/Lsp.Tests/Capabilities/Client/DynamicCapabilityTests.cs

-24
This file was deleted.

test/Lsp.Tests/Capabilities/Client/DynamicCapabilityTests_$SimpleTest.json

-1
This file was deleted.

0 commit comments

Comments
 (0)