/// <summary>Called when the visitor visits a MethodDeclarationSyntax node.</summary>
 public override SyntaxNode VisitMethodDeclaration(MethodDeclarationSyntax node)
 {
     using (Tab())
     {
         var r = base.VisitMethodDeclaration(node) as MethodDeclarationSyntax;
         return(r.WithLeadingTrivia(Tabs.BrTabs()).WithReturnType(r.ReturnType.WithoutTrivia().WithTrailingTrivia(Space)).WithTrailingTrivia(LineFeed));
     }
 }
 /// <summary>Called when the visitor visits a ArgumentSyntax node.</summary>
 public override SyntaxNode VisitArgument(ArgumentSyntax node)
 {
     if (node.ContainsAnnotations && node.HasAnnotation(Annotations.ThenArgument))
     {
         var r = base.VisitArgument(node) as ArgumentSyntax;
         return(r.WithLeadingTrivia(Tabs.BrTabs()));
     }
     return(base.VisitArgument(node));
 }
        /// <summary>Called when the visitor visits a ClassDeclarationSyntax node.</summary>
        public override SyntaxNode VisitClassDeclaration(ClassDeclarationSyntax node)
        {
            using (Tab())
            {
                var cds = base.VisitClassDeclaration(node) as ClassDeclarationSyntax;

                return(cds.WithoutTrivia()
                       .WithLeadingTrivia(Tabs.BrTabs())
                       .WithKeyword(Token(SyntaxKind.ClassKeyword).WithTrailingTrivia(Space).WithLeadingTrivia(Tabs.BrTabs()))
                       .WithOpenBraceToken(Token(SyntaxKind.OpenBraceToken).WithLeadingTrivia(Tabs.BrTabs()))
                       .WithCloseBraceToken(Token(SyntaxKind.CloseBraceToken).WithLeadingTrivia(Tabs.BrTabs())));
            }
        }
        /// <summary>Called when the visitor visits a InitializerExpressionSyntax node.</summary>
        public override SyntaxNode VisitInitializerExpression(InitializerExpressionSyntax node)
        {
            using (Tab())
            {
                var r = base.VisitInitializerExpression(node) as InitializerExpressionSyntax;
                if (r.IsKind(SyntaxKind.ObjectInitializerExpression))
                {
                    var ex = r.Expressions.Select(x => x.WithoutTrivia().WithLeadingTrivia(Tabs.BrTabs())).ToArray();
                    r = r.WithExpressions(SeparatedList <ExpressionSyntax>(ex)).WithCloseBraceToken(Token(SyntaxKind.CloseBraceToken).WithLeadingTrivia(Tabs.BrTabs_Prev()));
                }

                if (r.IsKind(SyntaxKind.CollectionInitializerExpression))
                {
                    var ex = r.Expressions.Select(x => x.WithoutTrivia().WithLeadingTrivia(Tabs.BrTabs())).ToArray();
                    r = r.WithExpressions(SeparatedList <ExpressionSyntax>(ex)).WithCloseBraceToken(Token(SyntaxKind.CloseBraceToken).WithLeadingTrivia(Tabs.BrTabs_Prev()));
                }

                return(r);
            }
        }
        /// <summary>Called when the visitor visits a UsingDirectiveSyntax node.</summary>
        public override SyntaxNode VisitUsingDirective(UsingDirectiveSyntax node)
        {
            var r = base.VisitUsingDirective(node);

            return(r.WithTrailingTrivia(Tabs.BrTabs()));
        }