@@ -22,13 +22,18 @@ namespace OmniSharp.Extensions.LanguageServer.Client
2222 internal class LanguageClientRegistrationManager : IRegisterCapabilityHandler , IUnregisterCapabilityHandler , IRegistrationManager , IDisposable
2323 {
2424 private readonly ISerializer _serializer ;
25+ private readonly ILspHandlerTypeDescriptorProvider _handlerTypeDescriptorProvider ;
2526 private readonly ILogger < LanguageClientRegistrationManager > _logger ;
2627 private readonly ConcurrentDictionary < string , Registration > _registrations ;
2728 private readonly ReplaySubject < IEnumerable < Registration > > _registrationSubject ;
2829
29- public LanguageClientRegistrationManager ( ISerializer serializer , ILogger < LanguageClientRegistrationManager > logger )
30+ public LanguageClientRegistrationManager (
31+ ISerializer serializer ,
32+ ILspHandlerTypeDescriptorProvider handlerTypeDescriptorProvider ,
33+ ILogger < LanguageClientRegistrationManager > logger )
3034 {
3135 _serializer = serializer ;
36+ _handlerTypeDescriptorProvider = handlerTypeDescriptorProvider ;
3237 _logger = logger ;
3338 _registrations = new ConcurrentDictionary < string , Registration > ( StringComparer . OrdinalIgnoreCase ) ;
3439 _registrationSubject = new ReplaySubject < IEnumerable < Registration > > ( 1 ) ;
@@ -65,7 +70,7 @@ public void RegisterCapabilities(ServerCapabilities serverCapabilities)
6570 serverCapabilities
6671 ) )
6772 {
68- var method = LspHandlerTypeDescriptorHelper . GetMethodForRegistrationOptions ( registrationOptions ) ;
73+ var method = _handlerTypeDescriptorProvider . GetMethodForRegistrationOptions ( registrationOptions ) ;
6974 if ( method == null )
7075 {
7176 _logger . LogWarning ( "Unable to find method for given {@RegistrationOptions}" , registrationOptions ) ;
@@ -91,7 +96,7 @@ public void RegisterCapabilities(ServerCapabilities serverCapabilities)
9196 . Workspace
9297 ) )
9398 {
94- var method = LspHandlerTypeDescriptorHelper . GetMethodForRegistrationOptions ( registrationOptions ) ;
99+ var method = _handlerTypeDescriptorProvider . GetMethodForRegistrationOptions ( registrationOptions ) ;
95100 if ( method == null )
96101 {
97102 // TODO: Log this
@@ -117,7 +122,7 @@ private void Register(params Registration[] registrations)
117122
118123 private void Register ( Registration registration )
119124 {
120- var registrationType = LspHandlerTypeDescriptorHelper . GetRegistrationType ( registration . Method ) ;
125+ var registrationType = _handlerTypeDescriptorProvider . GetRegistrationType ( registration . Method ) ;
121126 if ( registrationType == null )
122127 {
123128 _registrations . AddOrUpdate ( registration . Id , x => registration , ( a , b ) => registration ) ;
0 commit comments