Example #1
0
        static void Main()
        {
            var @namespace = NamespaceDeclaration(IdentifierName("HearthDb"));
            var header     = ParseLeadingTrivia(@"/* THIS CLASS WAS GENERATED BY HearthDb.CardIdGenerator. DO NOT EDIT. */");
            var cCardIds   = ClassDeclaration("CardIds").AddModifiers(Token(PublicKeyword)).WithLeadingTrivia(header);

            Console.WriteLine("Generating collectible cards...");
            var cCollectible = SyntaxBuilder.GetCollectible();

            Console.WriteLine("Generating non-collectible cards...");
            var cNonCollectible = SyntaxBuilder.GetNonCollectible();

            Console.WriteLine("Adding cards to namespace...");
            cCardIds   = cCardIds.AddMembers(cCollectible);
            cCardIds   = cCardIds.AddMembers(cNonCollectible);
            @namespace = @namespace.AddMembers(cCardIds);

            Console.WriteLine("Formatting namespace. This may take a while...");
            var root = Formatter.Format(@namespace, MSBuildWorkspace.Create());

            var    rootString = root.ToString();
            string prevString;

            using (var sr = new StreamReader(File))
                prevString = sr.ReadToEnd();

            if (prevString != rootString)
            {
                Console.WriteLine($"Saving to '{File}'...");
                using (var sr = new StreamWriter(File))
                    sr.Write(root.ToString());

                Console.WriteLine("Done. Press any key to exit.");
            }
            else
            {
                Console.WriteLine($"No changes. Press any key to exit.");
            }

            Console.ReadKey();
        }