private static void DoObserveWorkDone(ILanguageProtocolProxy proxy, IWorkDoneProgressParams @params, IWorkDoneProgressObserver observer) { var token = @params.WorkDoneToken ??= new ProgressToken(Guid.NewGuid().ToString()); var observable = proxy.GetRequiredService <IClientWorkDoneManager>().Monitor(token); observable.Subscribe( v => { switch (v) { case WorkDoneProgressBegin begin: observer.OnBegin(begin); break; case WorkDoneProgressReport report: observer.OnReport(report); break; case WorkDoneProgressEnd end: observer.OnEnd(end); break; } }, observer.OnError, observer.OnCompleted ); }
private static void DoObserveWorkDone(ILanguageProtocolProxy proxy, IWorkDoneProgressParams @params, IObserver <WorkDoneProgress> observer) { var token = @params.WorkDoneToken ??= new ProgressToken(Guid.NewGuid().ToString()); proxy.GetRequiredService <IClientWorkDoneManager>().Monitor(token).Subscribe(observer); }
private static void DoObserveWorkDone(ILanguageProtocolProxy proxy, IWorkDoneProgressParams @params, IObserver <WorkDoneProgress> observer) { var token = SetWorkDoneToken(@params); proxy.GetRequiredService <IClientWorkDoneManager>().Monitor(token).Subscribe(observer); }