Esempio n. 1
0
        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);
                }
            }