Пример #1
0
        public void VisitBlock(BlockSyntax node)
        {
            if (node == null)
                throw new ArgumentNullException("node");

            node.Validate();

            WriteLeadingTrivia(node);

            bool writeNewlineBefore = !(
                node.Parent is BlockSyntax ||
                node.Parent is LabeledStatementSyntax
            );

            if (!node.ChildNodes().Any())
            {
                _writer.EmptyBlock(writeNewlineBefore);
            }
            else
            {
                _writer.BeginBlock(writeNewlineBefore, true);

                _writer.PushBraceFormatting(_writer.Configuration.BracesLayout.Other);

                foreach (var statement in node.Statements)
                {
                    statement.Accept(this);
                }

                _writer.PopBraceFormatting();

                _writer.EndBlock();
            }

            WriteTrailingTrivia(node);
        }