private async Task ProcessOpenDocumentIfNeededAsync( ImmutableArray <IIncrementalAnalyzer> analyzers, WorkItem workItem, TextDocument textDocument, bool isOpen, CancellationToken cancellationToken ) { if ( !isOpen || !workItem.InvocationReasons.Contains( PredefinedInvocationReasons.DocumentOpened ) ) { return; } SolutionCrawlerLogger.LogProcessOpenDocument( Processor._logAggregator, textDocument.Id.Id ); await Processor .RunAnalyzersAsync( analyzers, textDocument, workItem, DocumentOpenAsync, cancellationToken ) .ConfigureAwait(false); return;