コード例 #1
0
        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());
        }
コード例 #2
0
        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());
        }