public async Task <IList <PackageWithTypeResult> > FindPackagesWithTypeAsync( string source, string name, int arity, CancellationToken cancellationToken) { var result = await codeAnalysisService.InvokeAsync <IList <PackageWithTypeResult> >( nameof(FindPackagesWithTypeAsync), new object[] { source, name, arity }, cancellationToken).ConfigureAwait(false); return(result); }
private void OnWorkspaceChanged(object sender, WorkspaceChangeEventArgs e) { // workspace event is serialized events. and reset delay only get updated here if (!_resettableDelay.Task.IsCompleted) { _resettableDelay.Reset(); return; } var delay = new ResettableDelay((int)s_delay.TotalMilliseconds, expeditableDelaySource: AsynchronousOperationListenerProvider.NullListener); _resettableDelay = delay; delay.Task.ContinueWith(InvalidateAsync, CancellationToken.None, TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default); async Task InvalidateAsync(Task _) { var document = _workspace.CurrentSolution.GetDocument(_documentId); if (document == null) { return; } var newVersion = await document.Project.GetDependentVersionAsync(CancellationToken.None).ConfigureAwait(false); if (newVersion == _lastVersion) { return; } // fire and forget. // ignore any exception such as rpc already disposed (disconnected) _lastVersion = newVersion; await _owner.InvokeAsync(nameof(IRemoteCodeLensDataPoint.Invalidate), CancellationToken.None).ConfigureAwait(false); } }
public Task OnStartedAsync() => _service.InvokeAsync(nameof(OnStartedAsync), _cancellationToken);
public Task ReportProgressAsync(int current, int maximum) => _service.InvokeAsync(nameof(ReportProgressAsync), new object[] { current, maximum }, _cancellationToken);