public void VisitIfStatement(IfStatementSyntax node) { if (node == null) throw new ArgumentNullException("node"); node.Validate(); bool parentIsElse = node.Parent is ElseClauseSyntax; if ( parentIsElse && (node.LeadingTrivia.Count > 0 || node.TrailingTrivia.Count > 0) ) { throw new CSharpSyntaxException(String.Format( "Trivia on else if node '{0}' is not supported", node )); } WriteLeadingTrivia(node); if ( !_writer.Configuration.Other.Other.SpecialElseIfTreatment || !parentIsElse ) _writer.WriteIndent(); _writer.WriteKeyword(PrinterKeyword.If); if (_writer.Configuration.Spaces.BeforeParentheses.IfParentheses) _writer.WriteSpace(); _writer.WriteSyntax(Syntax.OpenParen); if (_writer.Configuration.Spaces.WithinParentheses.IfParentheses) _writer.WriteSpace(); _wrapCompound = _writer.Configuration.LineBreaksAndWrapping.LineWrapping.ForceChopCompoundConditionInIfStatement; node.Condition.Accept(this); _wrapCompound = false; if (_writer.Configuration.Spaces.WithinParentheses.IfParentheses) _writer.WriteSpace(); _writer.WriteSyntax(Syntax.CloseParen); bool noNewline = node.Else != null && !_writer.Configuration.LineBreaksAndWrapping.PlaceOnNewLine.PlaceElseOnNewLine; if (noNewline) _writer.PushBraceFormatting(_writer.Configuration.BracesLayout.Other, false); VisitBlockStatement(node.Statement); if (noNewline) { _writer.PopBraceFormatting(); _writer.WriteSpace(); } else if (node.Else != null) { _writer.WriteIndent(); } if (node.Else != null) node.Else.Accept(this); WriteTrailingTrivia(node); }