diff options
Diffstat (limited to 'ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators')
5 files changed, 254 insertions, 0 deletions
diff --git a/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/AssemblyGenerator.cs b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/AssemblyGenerator.cs new file mode 100644 index 0000000..76c4749 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/AssemblyGenerator.cs @@ -0,0 +1,22 @@ +using CsvHelper.DocsGenerator.Infos; + +namespace CsvHelper.DocsGenerator.Generators +{ + public class AssemblyGenerator : DocumentGenerator + { + public AssemblyGenerator(AssemblyInfo assemblyInfo) : base(assemblyInfo) { } + + protected override void GenerateContent() + { + content.AppendLine($"# {assemblyInfo.Assembly.GetName().Name} Namespaces"); + content.AppendLine(); + content.AppendLine("## Namespaces"); + content.AppendLine(" | "); + content.AppendLine("- | -"); + foreach (var @namespace in assemblyInfo.Namespaces) + { + content.AppendLine($"[{@namespace.Namespace}](/api/{@namespace.Namespace}) | "); + } + } + } +} diff --git a/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/DocumentGenerator.cs b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/DocumentGenerator.cs new file mode 100644 index 0000000..614e182 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/DocumentGenerator.cs @@ -0,0 +1,42 @@ +using CsvHelper.DocsGenerator.Infos; +using System; +using System.Text; + +namespace CsvHelper.DocsGenerator.Generators +{ + public abstract class DocumentGenerator + { + //protected readonly HtmlFormatter htmlFormatter = new HtmlFormatter(); + protected readonly LinkGenerator linkGenerator = new LinkGenerator(); + protected readonly AssemblyInfo assemblyInfo; + protected readonly NamespaceInfo namespaceInfo; + protected readonly TypeInfo typeInfo; + protected readonly StringBuilder content = new StringBuilder(); + + public DocumentGenerator(AssemblyInfo assemblyInfo) + { + this.assemblyInfo = assemblyInfo ?? throw new ArgumentNullException(nameof(assemblyInfo)); + } + + public DocumentGenerator(NamespaceInfo namespaceInfo) + { + this.namespaceInfo = namespaceInfo; + } + + public DocumentGenerator(TypeInfo typeInfo) + { + this.typeInfo = typeInfo ?? throw new ArgumentNullException(nameof(typeInfo)); + } + + public string Generate() + { + content.Clear(); + + GenerateContent(); + + return content.ToString(); + } + + protected abstract void GenerateContent(); + } +} diff --git a/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/DocumentGeneratorFactory.cs b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/DocumentGeneratorFactory.cs new file mode 100644 index 0000000..d9ece33 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/DocumentGeneratorFactory.cs @@ -0,0 +1,22 @@ +using CsvHelper.DocsGenerator.Infos; + +namespace CsvHelper.DocsGenerator.Generators +{ + public class DocumentGeneratorFactory + { + public DocumentGenerator Create(AssemblyInfo assemblyInfo) + { + return new AssemblyGenerator(assemblyInfo); + } + + public DocumentGenerator Create(NamespaceInfo namespaceInfo) + { + return new NamespaceGenerator(namespaceInfo); + } + + public DocumentGenerator Create(TypeInfo typeInfo) + { + return new TypeGenerator(typeInfo); + } + } +} diff --git a/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/NamespaceGenerator.cs b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/NamespaceGenerator.cs new file mode 100644 index 0000000..b3a9314 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/NamespaceGenerator.cs @@ -0,0 +1,50 @@ +using CsvHelper.DocsGenerator.Infos; + +namespace CsvHelper.DocsGenerator.Generators +{ + public class NamespaceGenerator : DocumentGenerator + { + public NamespaceGenerator(NamespaceInfo namespaceInfo) : base(namespaceInfo) { } + + protected override void GenerateContent() + { + content.AppendLine($"# {namespaceInfo.Namespace} Namespace"); + + if (namespaceInfo.Classes.Count > 0) + { + content.AppendLine(); + content.AppendLine("## Classes"); + content.AppendLine(" | "); + content.AppendLine("- | -"); + foreach (var typeInfo in namespaceInfo.Classes) + { + content.AppendLine($"[{typeInfo.Type.GetHtmlName()}](/api/{namespaceInfo.Namespace}/{typeInfo.Type.GetHtmlName()}) | {typeInfo.Type.GetSummary()}"); + } + } + + if (namespaceInfo.Interfaces.Count > 0) + { + content.AppendLine(); + content.AppendLine("## Interfaces"); + content.AppendLine(" | "); + content.AppendLine("- | -"); + foreach (var typeInfo in namespaceInfo.Interfaces) + { + content.AppendLine($"[{typeInfo.Type.GetHtmlName()}](/api/{namespaceInfo.Namespace}/{typeInfo.Type.Name}) | {typeInfo.Type.GetSummary()}"); + } + } + + if (namespaceInfo.Enums.Count > 0) + { + content.AppendLine(); + content.AppendLine("## Enums"); + content.AppendLine(" | "); + content.AppendLine("- | -"); + foreach (var typeInfo in namespaceInfo.Enums) + { + content.AppendLine($"[{typeInfo.Type.GetHtmlName()}](/api/{namespaceInfo.Namespace}/{typeInfo.Type.Name}) | {typeInfo.Type.GetSummary()}"); + } + } + } + } +} diff --git a/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/TypeGenerator.cs b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/TypeGenerator.cs new file mode 100644 index 0000000..fa7533e --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Generators/TypeGenerator.cs @@ -0,0 +1,118 @@ +using CsvHelper.DocsGenerator.Infos; +using System.Linq; + +namespace CsvHelper.DocsGenerator.Generators +{ + public class TypeGenerator : DocumentGenerator + { + public TypeGenerator(TypeInfo typeInfo) : base(typeInfo) { } + + protected override void GenerateContent() + { + // Title + content.AppendLine($"# {typeInfo.Type.GetHtmlName()} {typeInfo.Type.GetTypeName()}"); + + // Namespace + content.AppendLine(); + content.AppendLine($"Namespace: [{typeInfo.Type.Namespace}](/api/{typeInfo.Type.Namespace})"); + + // Summary + content.AppendLine(); + content.AppendLine(typeInfo.Type.GetSummary()); + + // Definition + content.AppendLine(); + content.AppendLine("```cs"); + foreach (var attribute in typeInfo.Attributes) + { + content.AppendLine($"[{attribute.GetFullCodeName()}]"); + } + + var inheritanceText = string.Empty; + if (!typeInfo.Type.IsEnum && typeInfo.Implementers.Count > 0) + { + inheritanceText = $": {string.Join(", ", typeInfo.Implementers.Select(i => i.GetCodeName()))}"; + } + + var typeModifier = string.Empty; + if (typeInfo.Type.IsAbstract && typeInfo.Type.IsSealed && !typeInfo.Type.IsInterface) + { + typeModifier = "static "; + } + else if (typeInfo.Type.IsAbstract && !typeInfo.Type.IsSealed && !typeInfo.Type.IsInterface) + { + typeModifier = "abstract "; + } + + content.AppendLine($"public {typeModifier}{typeInfo.Type.GetTypeName().ToLower()} {typeInfo.Type.GetCodeName()} {inheritanceText}"); + content.AppendLine("```"); + + // Inheritance + if (typeInfo.Inheritance.Count > 0) + { + content.AppendLine(); + content.AppendLine($"Inheritance {string.Join(" -> ", typeInfo.Inheritance.Select(t => t.GetHtmlName()))}"); + } + + // Constructors + if (typeInfo.Constructors.Count > 0) + { + content.AppendLine(""); + content.AppendLine("## Constructors"); + content.AppendLine(" | "); + content.AppendLine("- | -"); + foreach (var constructorInfo in typeInfo.Constructors) + { + content.AppendLine($"{constructorInfo.Constructor.GetHtmlName()} | {constructorInfo.Constructor.GetSummary()}"); + } + } + + // Fields + if (typeInfo.Fields.Count > 0) + { + content.AppendLine(); + content.AppendLine("## Fields"); + content.AppendLine(" | "); + content.AppendLine("- | -"); + foreach (var field in typeInfo.Fields) + { + content.AppendLine($"{field.GetHtmlName()} | {field.GetSummary()}"); + } + } + + // Properties + if (typeInfo.Properties.Count > 0) + { + content.AppendLine(); + content.AppendLine("## Properties"); + content.AppendLine(" | "); + content.AppendLine("- | -"); + foreach (var property in typeInfo.Properties) + { + if (property.IndexParameters.Count > 0) + { + var parameters = string.Join(", ", property.IndexParameters.Select(ip => ip.ParameterType.GetHtmlName())); + content.AppendLine($"this[{parameters}] | {property.Property.GetSummary()}"); + } + else + { + content.AppendLine($"{property.Property.GetHtmlName()} | {property.Property.GetSummary()}"); + } + } + } + + // Methods + if (typeInfo.Methods.Count > 0) + { + content.AppendLine(); + content.AppendLine("## Methods"); + content.AppendLine(" | "); + content.AppendLine("- | -"); + foreach (var method in typeInfo.Methods) + { + content.AppendLine($"{method.Method.GetHtmlName()} | {method.Method.GetSummary()}"); + } + } + } + } +} |