Beispiel #1
0
        public async Task FindReferencesAsync(SymbolAndProjectId symbolAndProjectId)
        {
            await _progress.OnStartedAsync().ConfigureAwait(false);

            await _progressTracker.AddItemsAsync(1).ConfigureAwait(false);

            try
            {
                var symbols = await DetermineAllSymbolsAsync(symbolAndProjectId).ConfigureAwait(false);

                var projectMap = await CreateProjectMapAsync(symbols).ConfigureAwait(false);

                var projectToDocumentMap = await CreateProjectToDocumentMapAsync(projectMap).ConfigureAwait(false);

                ValidateProjectToDocumentMap(projectToDocumentMap);

                await ProcessAsync(projectToDocumentMap).ConfigureAwait(false);
            }
            finally
            {
                await _progressTracker.ItemCompletedAsync().ConfigureAwait(false);

                await _progress.OnCompletedAsync().ConfigureAwait(false);
            }
        }
Beispiel #2
0
        public async Task FindReferencesAsync()
        {
            await _progressTracker.AddItemsAsync(1).ConfigureAwait(false);

            try
            {
                if (_searchKind != SearchKind.None)
                {
                    await FindReferencesWorkerAsync().ConfigureAwait(false);
                }
            }
            finally
            {
                await _progressTracker.ItemCompletedAsync().ConfigureAwait(false);
            }
        }
Beispiel #3
0
        public async Task <IEnumerable <ReferencedSymbol> > FindReferencesAsync(
            SymbolAndProjectId symbolAndProjectId)
        {
            await _progress.OnStartedAsync().ConfigureAwait(false);

            await _progressTracker.AddItemsAsync(1).ConfigureAwait(false);

            try
            {
                var symbols = await DetermineAllSymbolsAsync(symbolAndProjectId).ConfigureAwait(false);

                var projectMap = await CreateProjectMapAsync(symbols).ConfigureAwait(false);

                var documentMap = await CreateDocumentMapAsync(projectMap).ConfigureAwait(false);
                await ProcessAsync(documentMap).ConfigureAwait(false);
            }
            finally
            {
                await _progressTracker.ItemCompletedAsync().ConfigureAwait(false);

                await _progress.OnCompletedAsync().ConfigureAwait(false);
            }

            return(_foundReferences.Select(
                       kvp => new ReferencedSymbol(kvp.Key, kvp.Value.ToImmutableArray())).ToImmutableArray());
        }