@@ -30,6 +30,7 @@ internal abstract class ElementDocumentationBase : DiagnosticAnalyzer
3030 private readonly Action < SyntaxNodeAnalysisContext , StyleCopSettings > conversionOperatorDeclarationAction ;
3131 private readonly Action < SyntaxNodeAnalysisContext , StyleCopSettings > classDeclarationAction ;
3232 private readonly Action < SyntaxNodeAnalysisContext , StyleCopSettings > structDeclarationAction ;
33+ private readonly Action < SyntaxNodeAnalysisContext , StyleCopSettings > interfaceDeclarationAction ;
3334 private readonly Action < SyntaxNodeAnalysisContext , StyleCopSettings > enumDeclarationAction ;
3435 private readonly Action < SyntaxNodeAnalysisContext , StyleCopSettings > fieldDeclarationAction ;
3536 private readonly Action < SyntaxNodeAnalysisContext , StyleCopSettings > propertyDeclarationAction ;
@@ -47,6 +48,7 @@ protected ElementDocumentationBase(bool inheritDocSuppressesWarnings, string mat
4748 this . conversionOperatorDeclarationAction = this . HandleConversionOperatorDeclaration ;
4849 this . classDeclarationAction = this . HandleClassDeclaration ;
4950 this . structDeclarationAction = this . HandleStructDeclaration ;
51+ this . interfaceDeclarationAction = this . HandleInterfaceDeclaration ;
5052 this . enumDeclarationAction = this . HandleEnumDeclaration ;
5153 this . fieldDeclarationAction = this . HandleFieldDeclaration ;
5254 this . propertyDeclarationAction = this . HandlePropertyDeclaration ;
@@ -66,6 +68,7 @@ public override void Initialize(AnalysisContext context)
6668 context . RegisterSyntaxNodeAction ( this . conversionOperatorDeclarationAction , SyntaxKind . ConversionOperatorDeclaration ) ;
6769 context . RegisterSyntaxNodeAction ( this . classDeclarationAction , SyntaxKind . ClassDeclaration ) ;
6870 context . RegisterSyntaxNodeAction ( this . structDeclarationAction , SyntaxKind . StructDeclaration ) ;
71+ context . RegisterSyntaxNodeAction ( this . interfaceDeclarationAction , SyntaxKind . InterfaceDeclaration ) ;
6972 context . RegisterSyntaxNodeAction ( this . enumDeclarationAction , SyntaxKind . EnumDeclaration ) ;
7073 context . RegisterSyntaxNodeAction ( this . fieldDeclarationAction , SyntaxKind . FieldDeclaration ) ;
7174 context . RegisterSyntaxNodeAction ( this . propertyDeclarationAction , SyntaxKind . PropertyDeclaration ) ;
@@ -195,6 +198,16 @@ private void HandleStructDeclaration(SyntaxNodeAnalysisContext context, StyleCop
195198 this . HandleDeclaration ( context , needsComment , node , node . Identifier . GetLocation ( ) ) ;
196199 }
197200
201+ private void HandleInterfaceDeclaration ( SyntaxNodeAnalysisContext context , StyleCopSettings settings )
202+ {
203+ var node = ( InterfaceDeclarationSyntax ) context . Node ;
204+
205+ Accessibility declaredAccessibility = node . GetDeclaredAccessibility ( context . SemanticModel , context . CancellationToken ) ;
206+ Accessibility effectiveAccessibility = node . GetEffectiveAccessibility ( context . SemanticModel , context . CancellationToken ) ;
207+ bool needsComment = SA1600ElementsMustBeDocumented . NeedsComment ( settings . DocumentationRules , node . Kind ( ) , node . Parent . Kind ( ) , declaredAccessibility , effectiveAccessibility ) ;
208+ this . HandleDeclaration ( context , needsComment , node , node . Identifier . GetLocation ( ) ) ;
209+ }
210+
198211 private void HandleEnumDeclaration ( SyntaxNodeAnalysisContext context , StyleCopSettings settings )
199212 {
200213 var node = ( EnumDeclarationSyntax ) context . Node ;
0 commit comments