private void HandleSyntaxTree(SyntaxTreeAnalysisContext context)
        {
            var tree = context.Tree;
            var root = tree.GetRoot(context.CancellationToken);

            // don't process empty files
            if (root.FullSpan.IsEmpty)
            {
                return;
            }

            var fileHeaderTemplate = context.GetAnalyzerOptions().FileHeaderTemplate;

            if (string.IsNullOrEmpty(fileHeaderTemplate))
            {
                return;
            }

            var fileHeader = FileHeaderHelper.ParseFileHeader(root);

            if (fileHeader.IsMissing)
            {
                context.ReportDiagnostic(Diagnostic.Create(MissingHeaderDescriptor, fileHeader.GetLocation(tree)));
                return;
            }

            var expectedFileHeader = fileHeaderTemplate.Replace("{fileName}", Path.GetFileName(tree.FilePath));

            if (!CompareCopyrightText(expectedFileHeader, fileHeader.CopyrightText))
            {
                context.ReportDiagnostic(Diagnostic.Create(InvalidHeaderDescriptor, fileHeader.GetLocation(tree)));
                return;
            }
        }
Exemplo n.º 2
0
        private void AnalyzeSyntaxTree(SyntaxTreeAnalysisContext context)
        {
            var option = context.GetAnalyzerOptions().RequireAccessibilityModifiers;

            if (option.Value == AccessibilityModifiersRequired.Never)
            {
                return;
            }

            ProcessCompilationUnit(context, option, (TCompilationUnitSyntax)context.Tree.GetRoot(context.CancellationToken));
        }
Exemplo n.º 3
0
        private void AnalyzeSyntaxTree(SyntaxTreeAnalysisContext context)
        {
            var option = context.GetAnalyzerOptions().AllowStatementImmediatelyAfterBlock;

            if (option.Value)
            {
                return;
            }

            var cancellationToken = context.CancellationToken;
            var root = context.Tree.GetRoot(cancellationToken);

            Recurse(context, option.Notification.Severity, root, cancellationToken);
        }
Exemplo n.º 4
0
        private void AnalyzeTree(SyntaxTreeAnalysisContext context)
        {
            var option = context.GetAnalyzerOptions().AllowMultipleBlankLines;

            if (option.Value)
            {
                return;
            }

            var cancellationToken = context.CancellationToken;
            var root = context.Tree.GetRoot(cancellationToken);

            Recurse(context, option.Notification.Severity, root, cancellationToken);
        }
Exemplo n.º 5
0
        private void AnalyzeSyntaxTree(SyntaxTreeAnalysisContext context)
        {
            var options = context.GetAnalyzerOptions().GetSyntaxFormattingOptions(SyntaxFormatting);

            FormattingAnalyzerHelper.AnalyzeSyntaxTree(context, SyntaxFormatting, Descriptor, options);
        }