summaryrefslogtreecommitdiff
path: root/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/Info.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/Info.cs')
-rw-r--r--ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/Info.cs105
1 files changed, 105 insertions, 0 deletions
diff --git a/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/Info.cs b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/Info.cs
new file mode 100644
index 0000000..fda1943
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/Info.cs
@@ -0,0 +1,105 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text.RegularExpressions;
+using System.Xml;
+using System.Xml.Linq;
+
+namespace CsvHelper.DocsGenerator.Infos
+{
+ [DebuggerDisplay("Name = {Name}, DisplayName = {DisplayName}, Namespace = {NameSpace}, FullName = {FullName}")]
+ public abstract class Info
+ {
+ //private string fullName;
+ //private string fullHtmlName;
+ //private string fullCodeName;
+
+ //protected readonly HtmlFormatter htmlFormatter = new HtmlFormatter();
+ //protected readonly XmlDocFormatter xmlDocFormatter = new XmlDocFormatter();
+
+ //public string Namespace { get; protected set; }
+
+ //public string Name { get; protected set; }
+
+ //public string HtmlName { get; protected set; }
+
+ //public string CodeName { get; protected set; }
+
+ //public string FullName
+ //{
+ // get => fullName ?? $"{Namespace}.{Name}";
+ // protected set => fullName = value;
+ //}
+
+ //public string FullHtmlName
+ //{
+ // get => fullHtmlName ?? $"{Namespace}.{HtmlName}";
+ // protected set => fullHtmlName = value;
+ //}
+
+ //public string FullCodeName
+ //{
+ // get => fullCodeName ?? $"{Namespace}.{CodeName}";
+ // protected set => fullCodeName = value;
+ //}
+
+ //public string Summary { get; protected set; }
+
+ protected string ParseSummary(string memberName, XElement xmlDocs)
+ {
+ var members = xmlDocs.Descendants("member");
+ var member = members?.SingleOrDefault(m => m.Attribute("name")?.Value == memberName);
+ var summary = member?.Element("summary");
+ if (summary != null)
+ {
+ var summaryText = new List<string>();
+ foreach (var node in summary.Nodes())
+ {
+ string text;
+ if (node.NodeType == XmlNodeType.Element)
+ {
+ var el = (XElement)node;
+ switch (el.Name.ToString())
+ {
+ case "paramref":
+ text = el.Attribute("name").Value;
+ break;
+ case "see":
+ text = el.Attribute("cref").Value.Substring(2);
+ break;
+ case "c":
+ text = el.Value;
+ break;
+ default:
+ throw new InvalidOperationException($"Unhandled element '{el.Name}'.");
+ }
+
+ text = $"``{text.Trim()}``";
+ }
+ else if (node.NodeType == XmlNodeType.Text)
+ {
+ text = node.ToString();
+ }
+ else
+ {
+ throw new InvalidOperationException($"Unhandled node type '{node.NodeType}'.");
+ }
+
+ text = Regex.Replace(text, @"\s{2,}", " ").Trim();
+
+ summaryText.Add(text);
+ }
+
+ return string.Join(" ", summaryText);
+ }
+
+ if (memberName.Substring(2).StartsWith("CsvHelper"))
+ {
+ Console.WriteLine($"No summary found for '{memberName}'.");
+ }
+
+ return null;
+ }
+ }
+}