private static NamespaceDeclarationSyntax GenerateNamespaceDeclaration <T>( CsBase csNamespace, IEnumerable <T> elements, IMultiCodeGenerator <T, MemberDeclarationSyntax> generator ) where T : CsBase => NamespaceDeclaration( ParseName(csNamespace.Name), default, default, List(elements.OrderBy(element => element.Name).SelectMany(generator.GenerateCode)) ).WithLeadingTrivia(Comment(AutoGeneratedCommentText));
private static CompilationUnitSyntax GenerateCompilationUnit<T>( string csNamespace, IEnumerable<T> elements, IMultiCodeGenerator<T, MemberDeclarationSyntax> generator) { return CompilationUnit() .WithMembers( SingletonList<MemberDeclarationSyntax>( NamespaceDeclaration(ParseName(csNamespace)) .WithMembers(List(elements.SelectMany(element => generator.GenerateCode(element)))) )) .NormalizeWhitespace(elasticTrivia: true); }