internal string Transform(GenFile file) { NameSyntax topNamespace = GenNames.NamespaceName(file.Namespace) ?? _names.TopNamespace; var ns = NamespaceDeclaration(topNamespace); foreach (var def in file.NestedTypes) { ns = ns.AddMembers(Transform(def).ToArray()); } var psc = TransformForPipeliningSupport(file); if (psc != null) { ns = ns.AddMembers(psc); } var cu = CompilationUnit().AddUsings( UsingDirective(ParseName("Capnp")), UsingDirective(ParseName("Capnp.Rpc")), UsingDirective(ParseName("System")), UsingDirective(ParseName("System.Collections.Generic")), UsingDirective(ParseName("System.Threading")), UsingDirective(ParseName("System.Threading.Tasks"))); cu = cu.AddMembers(ns); return(cu.NormalizeWhitespace().ToFullString()); }
internal string Transform(GenFile file) { _names.NullableEnable = file.NullableEnable ?? _options.NullableEnableDefault; NameSyntax topNamespace = GenNames.NamespaceName(file.Namespace) ?? _names.TopNamespace; var ns = NamespaceDeclaration(topNamespace); if (file.EmitNullableDirective) { ns = ns.WithLeadingTrivia( Trivia( NullableDirectiveTrivia( Token(_names.NullableEnable ? SyntaxKind.EnableKeyword : SyntaxKind.DisableKeyword), true))) .WithTrailingTrivia( Trivia( NullableDirectiveTrivia( Token(SyntaxKind.RestoreKeyword), true))); } foreach (var def in file.NestedTypes) { ns = ns.AddMembers(Transform(def).ToArray()); } var psc = TransformForPipeliningSupport(file); if (psc != null) { ns = ns.AddMembers(psc); } var cu = CompilationUnit().AddUsings( UsingDirective(ParseName("Capnp")), UsingDirective(ParseName("Capnp.Rpc")), UsingDirective(ParseName("System")), UsingDirective(ParseName("System.Collections.Generic"))); if (_names.NullableEnable) { cu = cu.AddUsings( UsingDirective(ParseName("System.Diagnostics.CodeAnalysis"))); } cu = cu.AddUsings( UsingDirective(ParseName("System.Threading")), UsingDirective(ParseName("System.Threading.Tasks"))); cu = cu.AddMembers(ns); return(cu.NormalizeWhitespace(" ", Environment.NewLine).ToFullString()); }