public override AnalyzerActions GetAnalyzerActions(DiagnosticAnalyzer analyzer) { AnalyzerActions compilationActions = base.GetAnalyzerActions(analyzer); AnalyzerActions sessionActions = _sessionScope.GetAnalyzerActions(analyzer); if (sessionActions.IsEmpty) { return(compilationActions); } if (compilationActions.IsEmpty) { return(sessionActions); } return(compilationActions.Append(sessionActions)); }
public Task <HostCompilationStartAnalysisScope> GetCompilationAnalysisScopeAsync( HostSessionStartAnalysisScope sessionScope, AnalyzerExecutor analyzerExecutor) { lock (_gate) { if (_lazyCompilationScopeTask == null) { _lazyCompilationScopeTask = Task.Run(() => { var compilationAnalysisScope = new HostCompilationStartAnalysisScope(sessionScope); analyzerExecutor.ExecuteCompilationStartActions(sessionScope.GetAnalyzerActions(_analyzer).CompilationStartActions, compilationAnalysisScope); return(compilationAnalysisScope); }, analyzerExecutor.CancellationToken); } return(_lazyCompilationScopeTask); } }