Skip to content

Commit 196a70e

Browse files
committed
Add handlers for field declarations and initializer expressions
1 parent 6485abc commit 196a70e

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

StyleCop.Analyzers/StyleCop.Analyzers/ReadabilityRules/SA1137ElementsShouldHaveTheSameIndentation.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ internal class SA1137ElementsShouldHaveTheSameIndentation : DiagnosticAnalyzer
3636
private static readonly Action<SyntaxNodeAnalysisContext> TypeDeclarationAction = HandleTypeDeclaration;
3737
private static readonly Action<SyntaxNodeAnalysisContext> EnumDeclarationAction = HandleEnumDeclaration;
3838
private static readonly Action<SyntaxNodeAnalysisContext> EnumMemberDeclarationAction = HandleEnumMemberDeclaration;
39+
private static readonly Action<SyntaxNodeAnalysisContext> FieldDeclarationAction = HandleFieldDeclaration;
3940
private static readonly Action<SyntaxNodeAnalysisContext> BaseMethodDeclarationAction = HandleBaseMethodDeclaration;
4041
private static readonly Action<SyntaxNodeAnalysisContext> MethodDeclarationAction = HandleMethodDeclaration;
4142
private static readonly Action<SyntaxNodeAnalysisContext> BasePropertyDeclarationAction = HandleBasePropertyDeclaration;
@@ -51,6 +52,7 @@ internal class SA1137ElementsShouldHaveTheSameIndentation : DiagnosticAnalyzer
5152
private static readonly Action<SyntaxNodeAnalysisContext> AttributeArgumentListAction = HandleAttributeArgumentList;
5253
private static readonly Action<SyntaxNodeAnalysisContext> BlockAction = HandleBlock;
5354
private static readonly Action<SyntaxNodeAnalysisContext> SwitchStatementAction = HandleSwitchStatement;
55+
private static readonly Action<SyntaxNodeAnalysisContext> InitializerExpressionAction = HandleInitializerExpression;
5456

5557
/// <inheritdoc/>
5658
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get; } =
@@ -70,6 +72,7 @@ private static void HandleCompilationStart(CompilationStartAnalysisContext conte
7072
context.RegisterSyntaxNodeActionHonorExclusions(TypeDeclarationAction, SyntaxKinds.TypeDeclaration);
7173
context.RegisterSyntaxNodeActionHonorExclusions(EnumDeclarationAction, SyntaxKind.EnumDeclaration);
7274
context.RegisterSyntaxNodeActionHonorExclusions(EnumMemberDeclarationAction, SyntaxKind.EnumMemberDeclaration);
75+
context.RegisterSyntaxNodeActionHonorExclusions(FieldDeclarationAction, SyntaxKind.FieldDeclaration);
7376
context.RegisterSyntaxNodeActionHonorExclusions(BaseMethodDeclarationAction, SyntaxKinds.BaseMethodDeclaration);
7477
context.RegisterSyntaxNodeActionHonorExclusions(MethodDeclarationAction, SyntaxKind.MethodDeclaration);
7578
context.RegisterSyntaxNodeActionHonorExclusions(BasePropertyDeclarationAction, SyntaxKinds.BasePropertyDeclaration);
@@ -85,6 +88,7 @@ private static void HandleCompilationStart(CompilationStartAnalysisContext conte
8588
context.RegisterSyntaxNodeActionHonorExclusions(AttributeArgumentListAction, SyntaxKind.AttributeArgumentList);
8689
context.RegisterSyntaxNodeActionHonorExclusions(BlockAction, SyntaxKind.Block);
8790
context.RegisterSyntaxNodeActionHonorExclusions(SwitchStatementAction, SyntaxKind.SwitchStatement);
91+
context.RegisterSyntaxNodeActionHonorExclusions(InitializerExpressionAction, SyntaxKinds.InitializerExpression);
8892
}
8993

9094
private static void HandleCompilationUnit(SyntaxNodeAnalysisContext context)
@@ -141,6 +145,13 @@ private static void HandleEnumMemberDeclaration(SyntaxNodeAnalysisContext contex
141145
CheckAttributeLists(context, enumMemberDeclaration.AttributeLists, enumMemberDeclaration);
142146
}
143147

148+
private static void HandleFieldDeclaration(SyntaxNodeAnalysisContext context)
149+
{
150+
var fieldDeclaration = (FieldDeclarationSyntax)context.Node;
151+
152+
CheckAttributeLists(context, fieldDeclaration.AttributeLists, fieldDeclaration);
153+
}
154+
144155
private static void HandleBaseMethodDeclaration(SyntaxNodeAnalysisContext context)
145156
{
146157
var baseMethodDeclaration = (BaseMethodDeclarationSyntax)context.Node;
@@ -283,6 +294,13 @@ private static void HandleSwitchStatement(SyntaxNodeAnalysisContext context)
283294
CheckElements(context, labeledStatements.ToImmutable());
284295
}
285296

297+
private static void HandleInitializerExpression(SyntaxNodeAnalysisContext context)
298+
{
299+
var initializerExpression = (InitializerExpressionSyntax)context.Node;
300+
301+
CheckElements(context, initializerExpression.Expressions);
302+
}
303+
286304
private static void CheckAttributeLists(SyntaxNodeAnalysisContext context, SyntaxList<AttributeListSyntax> attributeLists, SyntaxNode parent)
287305
{
288306
if (attributeLists.Count == 0)

0 commit comments

Comments
 (0)