Пример #1
0
        private void AnalyzeStatement(SyntaxNodeAnalysisContext context)
        {
            if (GeneratedCodeAnalyzer?.IsGeneratedCode(context) == true)
            {
                return;
            }

            if (!context.Node.IsKind(SyntaxKind.IfStatement) ||
                IfElseAnalysis.IsIsolatedIf((IfStatementSyntax)context.Node))
            {
                BlockSyntax block = EmbeddedStatementAnalysis.GetBlockThatCanBeEmbeddedStatement(context.Node);

                if (block != null &&
                    !block.OpenBraceToken.IsMissing &&
                    !block.CloseBraceToken.IsMissing &&
                    block.OpenBraceToken.LeadingTrivia.All(f => f.IsWhitespaceOrEndOfLineTrivia()) &&
                    block.OpenBraceToken.TrailingTrivia.All(f => f.IsWhitespaceOrEndOfLineTrivia()) &&
                    block.CloseBraceToken.LeadingTrivia.All(f => f.IsWhitespaceOrEndOfLineTrivia()) &&
                    block.CloseBraceToken.TrailingTrivia.All(f => f.IsWhitespaceOrEndOfLineTrivia()))
                {
                    context.ReportDiagnostic(
                        DiagnosticDescriptors.RemoveBraces,
                        block.GetLocation(),
                        SyntaxHelper.GetNodeTitle(context.Node));

                    context.FadeOutBraces(DiagnosticDescriptors.RemoveBracesFadeOut, block);
                }
            }
        }