private static void AddBracesToIfElseChain(CodeRefactoringContext context, IfStatementSyntax ifStatement) { if (IfElseChainAnalysis.IsTopmostIf(ifStatement) && ifStatement.Else != null && ifStatement.IfKeyword.Span.Contains(context.Span)) { var result = new IfElseChainAnalysisResult(ifStatement); if (result.AddBracesToChain) { context.RegisterRefactoring( "Add braces to if-else chain", cancellationToken => { return(AddBracesToIfElseChainRefactoring.RefactorAsync( context.Document, ifStatement, cancellationToken)); }); } if (result.RemoveBracesFromChain) { context.RegisterRefactoring( "Remove braces from if-else chain", cancellationToken => { return(RemoveBracesFromIfElseChainRefactoring.RefactorAsync( context.Document, ifStatement, cancellationToken)); }); } } }
private void AnalyzeIfStatement(SyntaxNodeAnalysisContext context) { if (GeneratedCodeAnalyzer?.IsGeneratedCode(context) == true) { return; } if (context.Node.Parent?.IsKind(SyntaxKind.ElseClause) == true) { return; } var ifStatement = (IfStatementSyntax)context.Node; if (ifStatement.Else != null) { var result = new IfElseChainAnalysisResult(ifStatement); if (result.AddBracesToChain) { context.ReportDiagnostic( DiagnosticDescriptors.AddBracesToIfElseChain, ifStatement.GetLocation()); } if (result.RemoveBracesFromChain) { context.ReportDiagnostic( DiagnosticDescriptors.RemoveBracesFromIfElseChain, ifStatement.GetLocation()); RemoveBracesFromStatementFadeOut(context, ifStatement); } } MergeIfStatementWithContainedIfStatementAnalyzer.Analyze(context, ifStatement); SimplifyIfStatementToReturnStatementAnalyzer.Analyze(context); }