private async Task <ImmutableArray <ExternalReferenceItem> > FindReferencesByMonikerAsync( ICodeIndexProvider codeIndexProvider, DefinitionItem definition, ImmutableArray <ISymbolMoniker> monikers, int pageIndex, CancellationToken cancellationToken) { var results = await FindReferencesByMonikerAsync( codeIndexProvider, monikers, pageIndex, cancellationToken).ConfigureAwait(false); using var _ = ArrayBuilder <ExternalReferenceItem> .GetInstance(out var referenceItems); foreach (var result in results) { referenceItems.Add(ConvertResult(definition, result)); } return(referenceItems.ToImmutable()); }
private async Task <ImmutableArray <ExternalReferenceItem> > FindReferencesByMonikerAsync( ICodeIndexProvider codeIndexProvider, DefinitionItem definition, ImmutableArray <ISymbolMoniker> monikers, IStreamingProgressTracker progress, int pageIndex, CancellationToken cancellationToken) { // Let the find-refs window know we have outstanding work await using var _1 = await progress.AddSingleItemAsync().ConfigureAwait(false); var results = await FindReferencesByMonikerAsync( codeIndexProvider, monikers, pageIndex, cancellationToken).ConfigureAwait(false); using var _2 = ArrayBuilder <ExternalReferenceItem> .GetInstance(out var referenceItems); foreach (var result in results) { referenceItems.Add(ConvertResult(definition, result)); } return(referenceItems.ToImmutable()); }
private static async Task <ICollection <JObject> > FindReferencesByMonikerAsync(ICodeIndexProvider codeIndexProvider, ImmutableArray <ISymbolMoniker> monikers, int pageIndex, CancellationToken cancellationToken) { try { return(await codeIndexProvider.FindReferencesByMonikerAsync( monikers, includeDeclaration : false, pageIndex : pageIndex, cancellationToken : cancellationToken).ConfigureAwait(false)); } catch (Exception e) when(FatalError.ReportWithoutCrashUnlessCanceled(e)) { return(SpecializedCollections.EmptyCollection <JObject>()); } }