@@ -22,13 +22,18 @@ namespace OmniSharp.Extensions.LanguageServer.Client
22
22
internal class LanguageClientRegistrationManager : IRegisterCapabilityHandler , IUnregisterCapabilityHandler , IRegistrationManager , IDisposable
23
23
{
24
24
private readonly ISerializer _serializer ;
25
+ private readonly ILspHandlerTypeDescriptorProvider _handlerTypeDescriptorProvider ;
25
26
private readonly ILogger < LanguageClientRegistrationManager > _logger ;
26
27
private readonly ConcurrentDictionary < string , Registration > _registrations ;
27
28
private readonly ReplaySubject < IEnumerable < Registration > > _registrationSubject ;
28
29
29
- public LanguageClientRegistrationManager ( ISerializer serializer , ILogger < LanguageClientRegistrationManager > logger )
30
+ public LanguageClientRegistrationManager (
31
+ ISerializer serializer ,
32
+ ILspHandlerTypeDescriptorProvider handlerTypeDescriptorProvider ,
33
+ ILogger < LanguageClientRegistrationManager > logger )
30
34
{
31
35
_serializer = serializer ;
36
+ _handlerTypeDescriptorProvider = handlerTypeDescriptorProvider ;
32
37
_logger = logger ;
33
38
_registrations = new ConcurrentDictionary < string , Registration > ( StringComparer . OrdinalIgnoreCase ) ;
34
39
_registrationSubject = new ReplaySubject < IEnumerable < Registration > > ( 1 ) ;
@@ -65,7 +70,7 @@ public void RegisterCapabilities(ServerCapabilities serverCapabilities)
65
70
serverCapabilities
66
71
) )
67
72
{
68
- var method = LspHandlerTypeDescriptorHelper . GetMethodForRegistrationOptions ( registrationOptions ) ;
73
+ var method = _handlerTypeDescriptorProvider . GetMethodForRegistrationOptions ( registrationOptions ) ;
69
74
if ( method == null )
70
75
{
71
76
_logger . LogWarning ( "Unable to find method for given {@RegistrationOptions}" , registrationOptions ) ;
@@ -91,7 +96,7 @@ public void RegisterCapabilities(ServerCapabilities serverCapabilities)
91
96
. Workspace
92
97
) )
93
98
{
94
- var method = LspHandlerTypeDescriptorHelper . GetMethodForRegistrationOptions ( registrationOptions ) ;
99
+ var method = _handlerTypeDescriptorProvider . GetMethodForRegistrationOptions ( registrationOptions ) ;
95
100
if ( method == null )
96
101
{
97
102
// TODO: Log this
@@ -117,7 +122,7 @@ private void Register(params Registration[] registrations)
117
122
118
123
private void Register ( Registration registration )
119
124
{
120
- var registrationType = LspHandlerTypeDescriptorHelper . GetRegistrationType ( registration . Method ) ;
125
+ var registrationType = _handlerTypeDescriptorProvider . GetRegistrationType ( registration . Method ) ;
121
126
if ( registrationType == null )
122
127
{
123
128
_registrations . AddOrUpdate ( registration . Id , x => registration , ( a , b ) => registration ) ;
0 commit comments