private static void ReportIfThereIsNoBlankLine(SyntaxNodeAnalysisContext context, SyntaxNode firstNode, SyntaxNode secondNode) { if (XmlCommentHelper.HasDocumentation(secondNode)) { // This should be reported by SA1514 instead. return; } var parent = firstNode.Parent; var allTrivia = parent.DescendantTrivia( TextSpan.FromBounds(firstNode.Span.End, secondNode.Span.Start), descendIntoTrivia: true); if (!HasEmptyLine(allTrivia)) { context.ReportDiagnostic(Diagnostic.Create(Descriptor, GetDiagnosticLocation(secondNode))); } }
public static void HandleEnumMemberDeclaration(SyntaxNodeAnalysisContext context, StyleCopSettings settings) { if (context.GetDocumentationMode() == DocumentationMode.None) { return; } EnumMemberDeclarationSyntax declaration = (EnumMemberDeclarationSyntax)context.Node; Accessibility declaredAccessibility = declaration.GetDeclaredAccessibility(); Accessibility effectiveAccessibility = declaration.GetEffectiveAccessibility(context.SemanticModel, context.CancellationToken); if (SA1600ElementsMustBeDocumented.NeedsComment(settings.DocumentationRules, declaration.Kind(), declaration.Parent.Kind(), declaredAccessibility, effectiveAccessibility)) { if (!XmlCommentHelper.HasDocumentation(declaration)) { context.ReportDiagnostic(Diagnostic.Create(Descriptor, declaration.Identifier.GetLocation())); } } }
public void HandleEnumMember(SyntaxNodeAnalysisContext context) { if (context.GetDocumentationMode() != DocumentationMode.Diagnose) { return; } EnumMemberDeclarationSyntax declaration = (EnumMemberDeclarationSyntax)context.Node; Accessibility declaredAccessibility = declaration.GetDeclaredAccessibility(); Accessibility effectiveAccessibility = declaration.GetEffectiveAccessibility(context.SemanticModel, context.CancellationToken); if (this.NeedsComment(declaration.Kind(), declaration.Parent.Kind(), declaredAccessibility, effectiveAccessibility)) { if (!XmlCommentHelper.HasDocumentation(declaration)) { context.ReportDiagnostic(Diagnostic.Create(Descriptor, declaration.Identifier.GetLocation())); } } }
public static void HandleIndexerDeclaration(SyntaxNodeAnalysisContext context, StyleCopSettings settings) { if (context.GetDocumentationMode() != DocumentationMode.Diagnose) { return; } IndexerDeclarationSyntax declaration = (IndexerDeclarationSyntax)context.Node; Accessibility declaredAccessibility = declaration.GetDeclaredAccessibility(context.SemanticModel, context.CancellationToken); Accessibility effectiveAccessibility = declaration.GetEffectiveAccessibility(context.SemanticModel, context.CancellationToken); if (NeedsComment(settings.DocumentationRules, declaration.Kind(), declaration.Parent.Kind(), declaredAccessibility, effectiveAccessibility)) { if (!XmlCommentHelper.HasDocumentation(declaration)) { context.ReportDiagnostic(Diagnostic.Create(Descriptor, declaration.ThisKeyword.GetLocation())); } } }
private void HandleMethodDeclaration(SyntaxNodeAnalysisContext context) { if (context.GetDocumentationMode() != DocumentationMode.Diagnose) { return; } MethodDeclarationSyntax methodDeclaration = context.Node as MethodDeclarationSyntax; if (methodDeclaration != null) { if (methodDeclaration.Modifiers.Any(SyntaxKind.PartialKeyword)) { if (!XmlCommentHelper.HasDocumentation(methodDeclaration)) { context.ReportDiagnostic(Diagnostic.Create(Descriptor, methodDeclaration.Identifier.GetLocation())); } } } }
private void HandleFieldDeclaration(SyntaxNodeAnalysisContext context) { if (context.GetDocumentationMode() != DocumentationMode.Diagnose) { return; } FieldDeclarationSyntax declaration = context.Node as FieldDeclarationSyntax; var variableDeclaration = declaration?.Declaration; if (variableDeclaration != null && this.NeedsComment(declaration.Modifiers, SyntaxKind.PrivateKeyword)) { if (!XmlCommentHelper.HasDocumentation(declaration)) { var locations = variableDeclaration.Variables.Select(v => v.Identifier.GetLocation()); foreach (var location in locations) { context.ReportDiagnostic(Diagnostic.Create(Descriptor, location)); } } } }
private void HandleMethodDeclaration(SyntaxNodeAnalysisContext context) { if (context.GetDocumentationMode() != DocumentationMode.Diagnose) { return; } MethodDeclarationSyntax declaration = context.Node as MethodDeclarationSyntax; SyntaxKind defaultVisibility = SyntaxKind.PrivateKeyword; if (this.IsInterfaceMemberDeclaration(declaration) || declaration.ExplicitInterfaceSpecifier != null) { defaultVisibility = SyntaxKind.PublicKeyword; } if (declaration != null && this.NeedsComment(declaration.Modifiers, defaultVisibility)) { if (!XmlCommentHelper.HasDocumentation(declaration)) { context.ReportDiagnostic(Diagnostic.Create(Descriptor, declaration.Identifier.GetLocation())); } } }
private void HandleEventFieldDeclaration(SyntaxNodeAnalysisContext context) { EventFieldDeclarationSyntax declaration = context.Node as EventFieldDeclarationSyntax; SyntaxKind defaultVisibility = SyntaxKind.PrivateKeyword; if (this.IsInterfaceMemberDeclaration(declaration)) { defaultVisibility = SyntaxKind.PublicKeyword; } var variableDeclaration = declaration?.Declaration; if (variableDeclaration != null && this.NeedsComment(declaration.Modifiers, defaultVisibility)) { if (!XmlCommentHelper.HasDocumentation(declaration)) { var locations = variableDeclaration.Variables.Select(v => v.Identifier.GetLocation()).ToArray(); foreach (var location in locations) { context.ReportDiagnostic(Diagnostic.Create(Descriptor, location)); } } } }