private static MemberDeclarationSyntax GetNextChildMember(this MemberDeclarationSyntax member, bool moveFromBottom) { var childMembers = member?.ChildNodes().OfType <MemberDeclarationSyntax>(); while (childMembers?.Count() > 0 && !member.IsKind(SyntaxKind.EnumDeclaration)) { member = moveFromBottom ? childMembers.Last() : childMembers.First(); childMembers = member.ChildNodes().OfType <MemberDeclarationSyntax>(); } return(member); }