MixinRefactoring.MemberDeclarationSyntaxExtension.AddRegionAround C# (CSharp) Method

AddRegionAround() public static method

public static AddRegionAround ( this members, string regionName ) : MemberDeclarationSyntax[]
members this
regionName string
return MemberDeclarationSyntax[]
        public static MemberDeclarationSyntax[] AddRegionAround(
            this MemberDeclarationSyntax[] members, string regionName)
        {
            var regionBegin = RegionDirectiveTrivia(true)
                   .WithHashToken(Token(SyntaxKind.HashToken))
                   .WithRegionKeyword(Token(SyntaxKind.RegionKeyword))
                   .WithEndOfDirectiveToken(
                       Token(TriviaList(PreprocessingMessage(regionName)),
                       SyntaxKind.EndOfDirectiveToken,
                       TriviaList()))
                   .WithTrailingTrivia(EndOfLine(NewLine));
            var regionEnd = EndRegionDirectiveTrivia(true);
            // add the region block before the first and after the last member
            var memberCount = members.Length;
            // add new trivias at the beginning of the
            // node, but also use the existing trivias of the node
            var firstMember = members[0];
            members[0] = firstMember
                .WithLeadingTrivia(
                new SyntaxTriviaList()
                    .Add(EndOfLine(NewLine))
                    .Add(Trivia(regionBegin))
                    .AddRange(firstMember.GetLeadingTrivia()));
            // add region after the trivias that already exist
            var lastMember = members[memberCount - 1];
            members[memberCount - 1] = lastMember
                .WithTrailingTrivia(
                new SyntaxTriviaList()
                .AddRange(lastMember.GetTrailingTrivia())
                .Add(Trivia(regionEnd))
                .Add(EndOfLine(NewLine)));
            return members;
        }
    }
MemberDeclarationSyntaxExtension