public static IDisposable OnImplementation(
     this ILanguageServerRegistry registry,
     Func <ImplementationParams, CancellationToken, Task <LocationOrLocationLinks> > handler,
     ImplementationRegistrationOptions registrationOptions = null,
     Action <ImplementationCapability> setCapability       = null)
 {
     registrationOptions ??= new ImplementationRegistrationOptions();
     return(registry.AddHandlers(new DelegatingHandler(handler, registry.ProgressManager, setCapability, registrationOptions)));
 }
 public DelegatingHandler(
     Func <ImplementationParams, CancellationToken, Task <LocationOrLocationLinks> > handler,
     ProgressManager progressManager,
     Action <ImplementationCapability> setCapability,
     ImplementationRegistrationOptions registrationOptions) : base(registrationOptions, progressManager)
 {
     _handler       = handler;
     _setCapability = setCapability;
 }
 public ImplementationHandler(ImplementationRegistrationOptions registrationOptions, ProgressManager progressManager)
 {
     _options        = registrationOptions;
     ProgressManager = progressManager;
 }