Пример #1
0
        private static void Main(Configuration configuration)
        {
            if (!Directory.Exists(configuration.OutputDirectory))
            {
                throw new PlainTextException("Output directory '{0}' does not exist.", configuration.OutputDirectory);
            }

            // Parse Moai code
            var parser = new MoaiParser(statusCallback: s => Console.WriteLine("[] {0}", s));

            parser.Parse(new DirectoryInfo(configuration.InputDirectory));

            // Show warning count
            if (parser.Warnings.Any())
            {
                Console.WriteLine("\nParsing resulted in {0} warnings. For more information, run DocLint.", parser.Warnings.Count);
            }

            // Export API description
            string header = string.Format(CultureInfo.InvariantCulture,
                                          "Documentation for {0} (http://getmoai.com/)\n"
                                          + "Generated on {1:yyyy-MM-dd} by {2}.\n"
                                          + CurrentUtility.MoaiUtilsHint,
                                          parser.MoaiVersionInfo, DateTime.Now, CurrentUtility.Signature);
            IApiExporter exporter;

            switch (configuration.ExportFormat)
            {
            case ExportFormat.ZeroBrane:
                exporter = new ZeroBraneExporter();
                break;

            case ExportFormat.SublimeText:
                exporter = new SublimeTextExporter();
                break;

            case ExportFormat.XML:
                exporter = new XmlExporter();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            DirectoryInfo outputDirectory = new DirectoryInfo(configuration.OutputDirectory);

            exporter.Export(parser.DocumentedClasses.ToArray(), header, outputDirectory);

            Console.WriteLine("\nGenerated Moai documentation in {0} format in '{1}'.",
                              configuration.ExportFormat, outputDirectory.FullName);
        }
Пример #2
0
        private static void Main(Configuration configuration)
        {
            IList <WarningType> ignoreTypes = new List <WarningType>();

            if (configuration.Filter != null)
            {
                ignoreTypes = configuration.Filter
                              .Select(f => Enum.TryParse <WarningType>(f, ignoreCase: true, result: out var warning)
                        ? warning
                        : (WarningType?)null).Where(x => x.HasValue).Select(x => x.Value).ToList();

                if (ignoreTypes.Count != configuration.Filter.Count)
                {
                    var validEnumValues = String.Join("\n\t", Enum.GetNames(typeof(WarningType)));
                    Console.WriteLine($"There were invalid warning types specified\nValid values are: {validEnumValues}");
                    return;
                }
                Console.WriteLine("Ignoring Warning Types: " + String.Join(",", ignoreTypes));
            }

            // Parse Moai code
            var parser = new MoaiParser(statusCallback: s => Console.WriteLine("[] {0}", s));

            parser.Parse(new DirectoryInfo(configuration.InputDirectory));

            // Show warnings
            Console.WriteLine();
            var orderedWarnings = parser.Warnings.Where(x => !ignoreTypes.Contains(x.Type))
                                  .OrderBy(warning => warning.Position.FileInfo.FullName).ToList();

            foreach (var warning in orderedWarnings)
            {
                Console.WriteLine("[{0}]\t{1}\t[{2}]", warning.Position.ToString(configuration.PathsAsUri), warning.Message, warning.Type);
            }
            Console.WriteLine("\n{0} warnings.", orderedWarnings.Count);
        }